dlm: fix double-release of socket in error exit path
authorCasey Dahlin <cdahlin@redhat.com>
Tue, 28 Jul 2009 17:29:05 +0000 (12:29 -0500)
committerDavid Teigland <teigland@redhat.com>
Tue, 18 Aug 2009 20:09:24 +0000 (15:09 -0500)
The last correction to the tcp_connect_to_sock error exit path,
commit a89d63a159b1ba5833be2bef00adf8ad8caac8be, can free an already
freed socket, due to collision with a previous (incomplete) attempt
to fix the same issue, commit 311f6fc77c51926dbdfbeab0a5d88d70f01fa3f4.

Signed-off-by: Casey Dahlin <cdahlin@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/lowcomms.c

index 618a60f..210d52c 100644 (file)
@@ -926,10 +926,8 @@ static void tcp_connect_to_sock(struct connection *con)
                goto out_err;
 
        memset(&saddr, 0, sizeof(saddr));
-       if (dlm_nodeid_to_addr(con->nodeid, &saddr)) {
-               sock_release(sock);
+       if (dlm_nodeid_to_addr(con->nodeid, &saddr))
                goto out_err;
-       }
 
        sock->sk->sk_user_data = con;
        con->rx_action = receive_from_sock;