[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240824115705.1267-1-hdanton@sina.com>
Date: Sat, 24 Aug 2024 19:57:05 +0800
From: Hillf Danton <hdanton@...a.com>
To: syzbot <syzbot+8dbe3133b840c470da0e@...kaller.appspotmail.com>
Cc: linux-kernel@...r.kernel.org,
syzkaller-bugs@...glegroups.com
Subject: Re: [syzbot] [bpf?] [net?] WARNING in sock_map_close (2)
On Thu, 22 Aug 2024 06:19:27 -0700
> syzbot found the following issue on:
>
> HEAD commit: d785ed945de6 net: wwan: t7xx: PCIe reset rescan
> git tree: net-next
> C reproducer: https://syzkaller.appspot.com/x/repro.c?x=12378c33980000
#syz test net-next d785ed945de6
--- x/net/core/sock_map.c
+++ y/net/core/sock_map.c
@@ -178,8 +178,10 @@ static void sock_map_del_link(struct soc
if (verdict_stop)
sk_psock_stop_verdict(sk, psock);
- if (psock->psock_update_sk_prot)
+ if (psock->psock_update_sk_prot) {
psock->psock_update_sk_prot(sk, psock, false);
+ WARN_ON_ONCE(sk->sk_prot->close == sock_map_close);
+ }
write_unlock_bh(&sk->sk_callback_lock);
}
}
@@ -196,10 +198,13 @@ static void sock_map_unref(struct sock *
static int sock_map_init_proto(struct sock *sk, struct sk_psock *psock)
{
+ int rc;
if (!sk->sk_prot->psock_update_sk_prot)
return -EINVAL;
psock->psock_update_sk_prot = sk->sk_prot->psock_update_sk_prot;
- return sk->sk_prot->psock_update_sk_prot(sk, psock, false);
+ rc = sk->sk_prot->psock_update_sk_prot(sk, psock, false);
+ WARN_ON_ONCE(sk->sk_prot->close == sock_map_close);
+ return rc;
}
static struct sk_psock *sock_map_psock_get_checked(struct sock *sk)
--
Powered by blists - more mailing lists