diff options
author | Masatake YAMATO <yamato@redhat.com> | 2008-06-27 09:35:03 -0400 |
---|---|---|
committer | David Teigland <teigland@redhat.com> | 2008-07-14 14:56:59 -0400 |
commit | 311f6fc77c51926dbdfbeab0a5d88d70f01fa3f4 (patch) | |
tree | bb5c3ca66a104642ac97814509015e60e5aea7d3 /fs/dlm/lowcomms.c | |
parent | 329fc4c37212588091b64bdf09afaeb18642aae2 (diff) |
dlm: release socket on error
It seems that `sock' allocated by sock_create_kern in
tcp_connect_to_sock() of dlm/fs/lowcomms.c is not released if
dlm_nodeid_to_addr an error.
Acked-by: Christine Caulfield <ccaulfie@redhat.com>
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
Diffstat (limited to 'fs/dlm/lowcomms.c')
-rw-r--r-- | fs/dlm/lowcomms.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c index 637018c891ef..3962262f991a 100644 --- a/fs/dlm/lowcomms.c +++ b/fs/dlm/lowcomms.c | |||
@@ -891,8 +891,10 @@ static void tcp_connect_to_sock(struct connection *con) | |||
891 | goto out_err; | 891 | goto out_err; |
892 | 892 | ||
893 | memset(&saddr, 0, sizeof(saddr)); | 893 | memset(&saddr, 0, sizeof(saddr)); |
894 | if (dlm_nodeid_to_addr(con->nodeid, &saddr)) | 894 | if (dlm_nodeid_to_addr(con->nodeid, &saddr)) { |
895 | sock_release(sock); | ||
895 | goto out_err; | 896 | goto out_err; |
897 | } | ||
896 | 898 | ||
897 | sock->sk->sk_user_data = con; | 899 | sock->sk->sk_user_data = con; |
898 | con->rx_action = receive_from_sock; | 900 | con->rx_action = receive_from_sock; |