Re: [syzbot] [net?] possible deadlock in do_ip_setsockopt (4)

From: Ananta Srikar Puranam
Date: Tue Sep 17 2024 - 17:47:15 EST



Fixed the circular lock dependency reported by syzkaller.

Signed-off-by: Ananta Srikar <srikarananta01@xxxxxxxxx>
Reported-by: syzbot+e4c27043b9315839452d@xxxxxxxxxxxxxxxxxxxxxxxxx
Closes: https://syzkaller.appspot.com/bug?extid=e4c27043b9315839452d
Fixes: d2bafcf224f3 ("Merge tag 'cgroup-for-6.11-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup")
---
net/ipv4/ip_sockglue.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
index cf377377b52d..a8f46d1ba62b 100644
--- a/net/ipv4/ip_sockglue.c
+++ b/net/ipv4/ip_sockglue.c
@@ -1073,9 +1073,11 @@ int do_ip_setsockopt(struct sock *sk, int level, int optname,
}

err = 0;
+
+ sockopt_lock_sock(sk);
+
if (needs_rtnl)
rtnl_lock();
- sockopt_lock_sock(sk);

switch (optname) {
case IP_OPTIONS:
--
2.43.0