diff mbox

[-next] tipc: fix the error handling in tipc_udp_enable()

Message ID 1472045539-19923-1-git-send-email-weiyj.lk@gmail.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Wei Yongjun Aug. 24, 2016, 1:32 p.m. UTC
From: Wei Yongjun <weiyongjun1@huawei.com>

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>
---
 net/tipc/udp_media.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

David Miller Aug. 25, 2016, 11:33 p.m. UTC | #1
From: Wei Yongjun <weiyj.lk@gmail.com>
Date: Wed, 24 Aug 2016 13:32:19 +0000

> From: Wei Yongjun <weiyongjun1@huawei.com>
> 
> 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>

Since this bug exists in mainline I applied this patch to 'net'.

Thanks.
diff mbox

Patch

diff --git a/net/tipc/udp_media.c b/net/tipc/udp_media.c
index 33bdf54..453ab0b 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;
 }