Page MenuHomeFreeBSD

sctp: Clear assoc socket references when freeing a PCB
ClosedPublic

Authored by markj on Sep 8 2021, 9:32 PM.
Tags
None
Referenced Files
F167078644: D31886.id94914.diff
Tue, Aug 18, 9:53 PM
F166971922: D31886.id94914.diff
Tue, Aug 18, 7:02 AM
Unknown Object (File)
Sun, Aug 16, 7:12 AM
Unknown Object (File)
Tue, Aug 11, 10:58 PM
Unknown Object (File)
Tue, Aug 11, 1:19 AM
Unknown Object (File)
Tue, Aug 11, 12:58 AM
Unknown Object (File)
Mon, Aug 10, 10:13 PM
Unknown Object (File)
Mon, Aug 10, 10:31 AM
Subscribers

Details

Summary

This restores behaviour present in the first import of SCTP. Commit
ceaad40ae729dea2c5d8ffcfdd45bb96fb8969d2 commented this out and commit
62fb761ff28bb184a2543e539dd689fefd5d3246 removed it. However, once
sctp_inpcb_free() returns, the socket reference is gone no matter what,
so we need to clear it. In particular, it's possible for
sctp_free_assoc() to set SCTP_STATE_ABOUT_TO_BE_FREED and then return
without actually freeing the association.

Reported by: syzbot+30dd69297fcbc5f0e10a@syzkaller.appspotmail.com

Diff Detail

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