diff options
author | Wei Yongjun <weiyongjun1@huawei.com> | 2016-09-09 20:56:55 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-09-13 11:28:32 -0400 |
commit | c20cb8119337052a84e40cba94af732d870e22e3 (patch) | |
tree | 855cbc716892fc388be6b6d38e2fe357108cd068 | |
parent | 308433155a67cb097142292c8943e0aa8d1a1c79 (diff) |
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.c | 3 |
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, | |||
665 | 665 | ||
666 | if (!opts[TIPC_NLA_UDP_LOCAL] || !opts[TIPC_NLA_UDP_REMOTE]) { | 666 | if (!opts[TIPC_NLA_UDP_LOCAL] || !opts[TIPC_NLA_UDP_REMOTE]) { |
667 | pr_err("Invalid UDP bearer configuration"); | 667 | pr_err("Invalid UDP bearer configuration"); |
668 | return -EINVAL; | 668 | err = -EINVAL; |
669 | goto err; | ||
669 | } | 670 | } |
670 | 671 | ||
671 | err = tipc_parse_udp_addr(opts[TIPC_NLA_UDP_LOCAL], &local, | 672 | err = tipc_parse_udp_addr(opts[TIPC_NLA_UDP_LOCAL], &local, |