git: 47c7dcfe2b09 - stable/14 - sctp: fix double unlock in case adding a remote address fails

From: Michael Tuexen <tuexen_at_FreeBSD.org>
Date: Mon, 07 Apr 2025 12:51:44 UTC
The branch stable/14 has been updated by tuexen:

URL: https://cgit.FreeBSD.org/src/commit/?id=47c7dcfe2b09a531ad618d962c62c6f84a446d3b

commit 47c7dcfe2b09a531ad618d962c62c6f84a446d3b
Author:     Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2025-03-31 01:25:53 +0000
Commit:     Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2025-04-07 12:51:00 +0000

    sctp: fix double unlock in case adding a remote address fails
    
    Thanks to glebius@ for pointing to the problem.
    
    Reported by:    syzbot+1d5c164f1c10de84ad8a@syzkaller.appspotmail.com
    Fixes:          2d5c48eccd9f ("sctp: Tighten up locking around sctp_aloc_assoc()")
    
    (cherry picked from commit e8623834ca29b562687db945bdd12a3e2fe4aeb1)
---
 sys/netinet/sctp_pcb.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/sys/netinet/sctp_pcb.c b/sys/netinet/sctp_pcb.c
index 7f10784ce433..6b4f1ce883d3 100644
--- a/sys/netinet/sctp_pcb.c
+++ b/sys/netinet/sctp_pcb.c
@@ -4233,7 +4233,6 @@ sctp_aloc_assoc_locked(struct sctp_inpcb *inp, struct sockaddr *firstaddr,
 		LIST_REMOVE(stcb, sctp_asocs);
 		LIST_REMOVE(stcb, sctp_tcbasocidhash);
 		SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_asoc), stcb);
-		SCTP_INP_WUNLOCK(inp);
 		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_PCB, ENOBUFS);
 		*error = ENOBUFS;
 		return (NULL);