提交 a89d63a1 编写于 作者: C Casey Dahlin 提交者: David Teigland

dlm: free socket in error exit path

In the tcp_connect_to_sock() error exit path, the socket
allocated at the top of the function was not being freed.
Signed-off-by: NCasey Dahlin <cdahlin@redhat.com>
Signed-off-by: NDavid Teigland <teigland@redhat.com>
上级 c78a87d0
...@@ -902,7 +902,7 @@ static void tcp_connect_to_sock(struct connection *con) ...@@ -902,7 +902,7 @@ static void tcp_connect_to_sock(struct connection *con)
int result = -EHOSTUNREACH; int result = -EHOSTUNREACH;
struct sockaddr_storage saddr, src_addr; struct sockaddr_storage saddr, src_addr;
int addr_len; int addr_len;
struct socket *sock; struct socket *sock = NULL;
if (con->nodeid == 0) { if (con->nodeid == 0) {
log_print("attempt to connect sock 0 foiled"); log_print("attempt to connect sock 0 foiled");
...@@ -962,6 +962,8 @@ static void tcp_connect_to_sock(struct connection *con) ...@@ -962,6 +962,8 @@ static void tcp_connect_to_sock(struct connection *con)
if (con->sock) { if (con->sock) {
sock_release(con->sock); sock_release(con->sock);
con->sock = NULL; con->sock = NULL;
} else if (sock) {
sock_release(sock);
} }
/* /*
* Some errors are fatal and this list might need adjusting. For other * Some errors are fatal and this list might need adjusting. For other
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册