diff options
author | Wei Yongjun <weiyongjun1@huawei.com> | 2016-08-24 13:32:19 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-08-25 16:32:34 -0700 |
commit | a5de125dd46c851fc962806135953c1bd0a0f0df (patch) | |
tree | 40445c0d7f7ce707399095192da27dd0a9281614 /net/tipc/udp_media.c | |
parent | 51af96b53469f3b8cfcfe0504d0ff87239175b78 (diff) | |
download | lwn-a5de125dd46c851fc962806135953c1bd0a0f0df.tar.gz lwn-a5de125dd46c851fc962806135953c1bd0a0f0df.zip |
tipc: fix the error handling in tipc_udp_enable()
Fix to return a negative error code in enable_mcast() error handling
case, and release udp socket when necessary.
Fixes: d0f91938bede ("tipc: add ip/udp media type")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/udp_media.c')
-rw-r--r-- | net/tipc/udp_media.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/tipc/udp_media.c b/net/tipc/udp_media.c index b016c011970b..ae7e14cae085 100644 --- a/net/tipc/udp_media.c +++ b/net/tipc/udp_media.c @@ -396,10 +396,13 @@ static int tipc_udp_enable(struct net *net, struct tipc_bearer *b, tuncfg.encap_destroy = NULL; setup_udp_tunnel_sock(net, ub->ubsock, &tuncfg); - if (enable_mcast(ub, remote)) + err = enable_mcast(ub, remote); + if (err) goto err; return 0; err: + if (ub->ubsock) + udp_tunnel_sock_release(ub->ubsock); kfree(ub); return err; } |