[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240317100451.2053-1-hdanton@sina.com>
Date: Sun, 17 Mar 2024 18:04:51 +0800
From: Hillf Danton <hdanton@...a.com>
To: syzbot <syzbot+e5167d7144a62715044c@...kaller.appspotmail.com>
Cc: linux-kernel@...r.kernel.org,
syzkaller-bugs@...glegroups.com
Subject: Re: [syzbot] [netfilter?] KASAN: slab-use-after-free Read in ip_skb_dst_mtu
On Wed, 06 Mar 2024 02:57:18 -0800
> syzbot found the following issue on:
>
> HEAD commit: 805d849d7c3c Merge tag 'acpi-6.8-rc7' of git://git.kernel...
> git tree: upstream
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1025fa6a180000
#syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git fe46a7dd189e
--- x/drivers/net/ipvlan/ipvlan_core.c
+++ y/drivers/net/ipvlan/ipvlan_core.c
@@ -426,6 +426,7 @@ static noinline_for_stack int ipvlan_pro
.daddr = ip4h->daddr,
.saddr = ip4h->saddr,
};
+ struct sock *sk;
rt = ip_route_output_flow(net, &fl4, NULL);
if (IS_ERR(rt))
@@ -439,7 +440,12 @@ static noinline_for_stack int ipvlan_pro
memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
+ sk = skb->sk;
+ if (!sk)
+ goto err;
+ refcount_inc(&sk->sk_wmem_alloc);
err = ip_local_out(net, skb->sk, skb);
+ sk_free(sk);
if (unlikely(net_xmit_eval(err)))
DEV_STATS_INC(dev, tx_errors);
else
--- x/kernel/rcu/tree.c
+++ y/kernel/rcu/tree.c
@@ -4025,6 +4025,7 @@ static void rcu_barrier_entrain(struct r
wake_nocb = was_alldone && rcu_segcblist_pend_cbs(&rdp->cblist);
if (rcu_segcblist_entrain(&rdp->cblist, &rdp->barrier_head)) {
atomic_inc(&rcu_state.barrier_cpu_count);
+ wake_nocb = true;
} else {
debug_rcu_head_unqueue(&rdp->barrier_head);
rcu_barrier_trace(TPS("IRQNQ"), -1, rcu_state.barrier_sequence);
--
Powered by blists - more mailing lists