lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 2 Jul 2019 00:57:19 +0800 From: Xin Long <lucien.xin@...il.com> To: network dev <netdev@...r.kernel.org> Cc: Jon Maloy <jon.maloy@...csson.com>, Ying Xue <ying.xue@...driver.com>, tipc-discussion@...ts.sourceforge.net, davem@...emloft.net Subject: [PATCH net-next] tipc: remove ub->ubsock checks Both tipc_udp_enable and tipc_udp_disable are called under rtnl_lock, ub->ubsock could never be NULL in tipc_udp_disable and cleanup_bearer, so remove the check. Also remove the one in tipc_udp_enable by adding "free" label. Signed-off-by: Xin Long <lucien.xin@...il.com> --- net/tipc/udp_media.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/net/tipc/udp_media.c b/net/tipc/udp_media.c index 62b85db..287df687 100644 --- a/net/tipc/udp_media.c +++ b/net/tipc/udp_media.c @@ -759,7 +759,7 @@ static int tipc_udp_enable(struct net *net, struct tipc_bearer *b, err = dst_cache_init(&ub->rcast.dst_cache, GFP_ATOMIC); if (err) - goto err; + goto free; /** * The bcast media address port is used for all peers and the ip @@ -771,13 +771,14 @@ static int tipc_udp_enable(struct net *net, struct tipc_bearer *b, else err = tipc_udp_rcast_add(b, &remote); if (err) - goto err; + goto free; return 0; -err: + +free: dst_cache_destroy(&ub->rcast.dst_cache); - if (ub->ubsock) - udp_tunnel_sock_release(ub->ubsock); + udp_tunnel_sock_release(ub->ubsock); +err: kfree(ub); return err; } @@ -795,8 +796,7 @@ static void cleanup_bearer(struct work_struct *work) } dst_cache_destroy(&ub->rcast.dst_cache); - if (ub->ubsock) - udp_tunnel_sock_release(ub->ubsock); + udp_tunnel_sock_release(ub->ubsock); synchronize_net(); kfree(ub); } @@ -811,8 +811,7 @@ static void tipc_udp_disable(struct tipc_bearer *b) pr_err("UDP bearer instance not found\n"); return; } - if (ub->ubsock) - sock_set_flag(ub->ubsock->sk, SOCK_DEAD); + sock_set_flag(ub->ubsock->sk, SOCK_DEAD); RCU_INIT_POINTER(ub->bearer, NULL); /* sock_release need to be done outside of rtnl lock */ -- 2.1.0
Powered by blists - more mailing lists