mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 04:56:13 +02:00
Unrolling mcast state at msk dismantel time is bug prone, as
syzkaller reported:
======================================================
WARNING: possible circular locking dependency detected
5.11.0-syzkaller #0 Not tainted
------------------------------------------------------
syz-executor905/8822 is trying to acquire lock:
ffffffff8d678fe8 (rtnl_mutex){+.+.}-{3:3}, at: ipv6_sock_mc_close+0xd7/0x110 net/ipv6/mcast.c:323
but task is already holding lock:
ffff888024390120 (sk_lock-AF_INET6){+.+.}-{0:0}, at: lock_sock include/net/sock.h:1600 [inline]
ffff888024390120 (sk_lock-AF_INET6){+.+.}-{0:0}, at: mptcp6_release+0x57/0x130 net/mptcp/protocol.c:3507
which lock already depends on the new lock.
Instead we can simply forbid any mcast-related setsockopt.
Let's do the same with all other non supported sockopts.
Fixes:
|
||
|---|---|---|
| .. | ||
| crypto_test.c | ||
| crypto.c | ||
| ctrl.c | ||
| diag.c | ||
| Kconfig | ||
| Makefile | ||
| mib.c | ||
| mib.h | ||
| mptcp_diag.c | ||
| options.c | ||
| pm_netlink.c | ||
| pm.c | ||
| protocol.c | ||
| protocol.h | ||
| sockopt.c | ||
| subflow.c | ||
| syncookies.c | ||
| token_test.c | ||
| token.c | ||