[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240210100707.817-1-hdanton@sina.com>
Date: Sat, 10 Feb 2024 18:07:05 +0800
From: Hillf Danton <hdanton@...a.com>
To: syzbot <syzbot+5a630f8ca0120ab43f55@...kaller.appspotmail.com>
Cc: linux-kernel@...r.kernel.org,
syzkaller-bugs@...glegroups.com,
Kuniyuki Iwashima <kuniyu@...zon.com>
Subject: Re: [syzbot] [kernel?] KASAN: slab-use-after-free Read in __unix_gc
On Fri, 09 Feb 2024 06:57:17 -0800
> HEAD commit: e7689879d14e ethtool: do not use rtnl in ethnl_default_dum..
> git tree: net-next
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=165f9cec180000
Test KI's fix [1].
[1] https://lore.kernel.org/netdev/20240209220453.96053-1-kuniyu@amazon.com/
#syz test https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git main
--- x/net/unix/garbage.c
+++ y/net/unix/garbage.c
@@ -340,10 +340,11 @@ static void __unix_gc(struct work_struct
__skb_queue_purge(&hitlist);
#if IS_ENABLED(CONFIG_AF_UNIX_OOB)
- list_for_each_entry_safe(u, next, &gc_candidates, link) {
- struct sk_buff *skb = u->oob_skb;
+ while (!list_empty(&gc_candidates)) {
+ u = list_entry(gc_candidates.next, struct unix_sock, link);
+ if (u->oob_skb) {
+ struct sk_buff *skb = u->oob_skb;
- if (skb) {
u->oob_skb = NULL;
kfree_skb(skb);
}
--
Powered by blists - more mailing lists