|
@@ -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;
|
|
|
}
|