git: a9309a37671e - stable/15 - in_mcast: Fix a lock leak in inp_set_source_filters()

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Wed, 22 Apr 2026 12:37:23 UTC
The branch stable/15 has been updated by markj:

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

commit a9309a37671e2b220d4aadab455a600875751faa
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2026-04-16 19:57:57 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2026-04-22 12:36:54 +0000

    in_mcast: Fix a lock leak in inp_set_source_filters()
    
    MFC after:      3 days
    Reported by:    Claude Opus 4.6
    
    (cherry picked from commit bebc1a5b09e358b420077a1b5c0f85f8e7f0812f)
---
 sys/netinet/in_mcast.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/netinet/in_mcast.c b/sys/netinet/in_mcast.c
index 6f8920aa69b8..08c536bc71c0 100644
--- a/sys/netinet/in_mcast.c
+++ b/sys/netinet/in_mcast.c
@@ -2601,6 +2601,7 @@ inp_set_source_filters(struct inpcb *inp, struct sockopt *sopt)
 		error = copyin(msfr.msfr_srcs, kss,
 		    sizeof(struct sockaddr_storage) * msfr.msfr_nsrcs);
 		if (error) {
+			IN_MULTI_UNLOCK();
 			free(kss, M_TEMP);
 			return (error);
 		}