aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc/server.c
diff options
context:
space:
mode:
authorJon Maloy <jon.maloy@ericsson.com>2017-12-04 22:00:20 +0100
committerDavid S. Miller <davem@davemloft.net>2017-12-05 14:52:41 -0500
commita7d5f107b4978e08eeab599ee7449af34d034053 (patch)
tree7eea9f2bf7169a373ef0c4a69d5a410d051e5a51 /net/tipc/server.c
parenttipc: fix a null pointer deref on error path (diff)
downloadlinux-dev-a7d5f107b4978e08eeab599ee7449af34d034053.tar.xz
linux-dev-a7d5f107b4978e08eeab599ee7449af34d034053.zip
tipc: fix memory leak in tipc_accept_from_sock()
When the function tipc_accept_from_sock() fails to create an instance of struct tipc_subscriber it omits to free the already created instance of struct tipc_conn instance before it returns. We fix that with this commit. Reported-by: David S. Miller <davem@davemloft.net> Signed-off-by: Jon Maloy <jon.maloy@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r--net/tipc/server.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/tipc/server.c b/net/tipc/server.c
index 2710101ba4c1..d60c30342327 100644
--- a/net/tipc/server.c
+++ b/net/tipc/server.c
@@ -314,6 +314,7 @@ static int tipc_accept_from_sock(struct tipc_conn *con)
newcon->usr_data = s->tipc_conn_new(newcon->conid);
if (!newcon->usr_data) {
sock_release(newsock);
+ conn_put(newcon);
return -ENOMEM;
}