summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWei Yongjun <weiyongjun1@huawei.com>2016-09-10 00:56:55 +0000
committerDavid S. Miller <davem@davemloft.net>2016-09-13 11:28:32 -0400
commitc20cb8119337052a84e40cba94af732d870e22e3 (patch)
tree855cbc716892fc388be6b6d38e2fe357108cd068
parent308433155a67cb097142292c8943e0aa8d1a1c79 (diff)
downloadlinux-c20cb8119337052a84e40cba94af732d870e22e3.tar.gz
linux-c20cb8119337052a84e40cba94af732d870e22e3.tar.bz2
linux-c20cb8119337052a84e40cba94af732d870e22e3.zip
tipc: fix possible memory leak in tipc_udp_enable()
'ub' is malloced in tipc_udp_enable() and should be freed before leaving from the error handling cases, otherwise it will cause memory leak. Fixes: ba5aa84a2d22 ("tipc: split UDP nl address parsing") Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/tipc/udp_media.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/tipc/udp_media.c b/net/tipc/udp_media.c
index dd274687a53d..d80cd3f7503f 100644
--- a/net/tipc/udp_media.c
+++ b/net/tipc/udp_media.c
@@ -665,7 +665,8 @@ static int tipc_udp_enable(struct net *net, struct tipc_bearer *b,
if (!opts[TIPC_NLA_UDP_LOCAL] || !opts[TIPC_NLA_UDP_REMOTE]) {
pr_err("Invalid UDP bearer configuration");
- return -EINVAL;
+ err = -EINVAL;
+ goto err;
}
err = tipc_parse_udp_addr(opts[TIPC_NLA_UDP_LOCAL], &local,