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
| ||
|
Message-ID: <828bb442-29d0-4bb8-b90d-f200bdd4faf6@web.de> Date: Sun, 31 Dec 2023 16:39:02 +0100 From: Markus Elfring <Markus.Elfring@....de> To: netdev@...r.kernel.org, kernel-janitors@...r.kernel.org, "David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, Willem de Bruijn <willemdebruijn.kernel@...il.com> Cc: LKML <linux-kernel@...r.kernel.org> Subject: [PATCH] packet: Improve exception handling in fanout_add() From: Markus Elfring <elfring@...rs.sourceforge.net> Date: Sun, 31 Dec 2023 16:30:51 +0100 The kfree() function was called in some cases by the fanout_add() function even if the passed variable contained a null pointer. This issue was detected by using the Coccinelle software. Thus use another label. Signed-off-by: Markus Elfring <elfring@...rs.sourceforge.net> --- net/packet/af_packet.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 5f1757a32842..0681d4f1ed85 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -1712,14 +1712,14 @@ static int fanout_add(struct sock *sk, struct fanout_args *args) err = -EALREADY; if (po->fanout) - goto out; + goto unlock_mutex; if (type == PACKET_FANOUT_ROLLOVER || (type_flags & PACKET_FANOUT_FLAG_ROLLOVER)) { err = -ENOMEM; rollover = kzalloc(sizeof(*rollover), GFP_KERNEL); if (!rollover) - goto out; + goto unlock_mutex; atomic_long_set(&rollover->num, 0); atomic_long_set(&rollover->num_huge, 0); atomic_long_set(&rollover->num_failed, 0); @@ -1812,6 +1812,7 @@ static int fanout_add(struct sock *sk, struct fanout_args *args) out: kfree(rollover); +unlock_mutex: mutex_unlock(&fanout_mutex); return err; } -- 2.43.0
Powered by blists - more mailing lists