Page MenuHomeFreeBSD

sctp: Fix lock recursion in sctp_swap_inpcb_for_listen()
ClosedPublic

Authored by markj on Sep 8 2021, 3:06 AM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Jul 4, 4:13 PM
Unknown Object (File)
Fri, Jul 4, 7:07 AM
Unknown Object (File)
Fri, Jul 4, 3:17 AM
Unknown Object (File)
Sun, Jun 29, 7:02 PM
Unknown Object (File)
Fri, Jun 27, 5:42 AM
Unknown Object (File)
May 12 2025, 7:44 PM
Unknown Object (File)
Apr 29 2025, 4:35 PM
Unknown Object (File)
Apr 29 2025, 1:56 PM
Subscribers

Details

Summary

After commit bd4a39cc93d9 we now hold the global inp info lock across
the call to sctp_swap_inpcb_for_listen(), which attempts to acquire it
again. Since sctp_swap_inpcb_for_listen()'s sole caller is
sctp_listen(), we can simply change it to not try to acquire the lock.

Fixes: bd4a39cc93d9 ("socket: Properly interlock when transitioning to a listening socket")
Reported by: syzkaller

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 41425
Build 38314: arc lint + arc unit