• Chuck Lever's avatar
    net/handshake: Fix sock->file allocation · 18c40a1c
    Chuck Lever authored
    	sock->file = sock_alloc_file(sock, O_NONBLOCK, NULL);
    	^^^^                         ^^^^
    
    sock_alloc_file() calls release_sock() on error but the left hand
    side of the assignment dereferences "sock".  This isn't the bug and
    I didn't report this earlier because there is an assert that it
    doesn't fail.
    
    net/handshake/handshake-test.c:221 handshake_req_submit_test4() error: dereferencing freed memory 'sock'
    net/handshake/handshake-test.c:233 handshake_req_submit_test4() warn: 'req' was already freed.
    net/handshake/handshake-test.c:254 handshake_req_submit_test5() error: dereferencing freed memory 'sock'
    net/handshake/handshake-test.c:290 handshake_req_submit_test6() error: dereferencing freed memory 'sock'
    net/handshake/handshake-test.c:321 handshake_req_cancel_test1() error: dereferencing freed memory 'sock'
    net/handshake/handshake-test.c:355 handshake_req_cancel_test2() error: dereferencing freed memory 'sock'
    net/handshake/handshake-test.c:367 handshake_req_cancel...
    18c40a1c
handshake-test.c 12.6 KB