git: bebc1a5b09e3 - main - in_mcast: Fix a lock leak in inp_set_source_filters()

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Thu, 16 Apr 2026 20:27:58 UTC
The branch main has been updated by markj:

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

commit bebc1a5b09e358b420077a1b5c0f85f8e7f0812f
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2026-04-16 19:57:57 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2026-04-16 20:27:45 +0000

    in_mcast: Fix a lock leak in inp_set_source_filters()
    
    MFC after:      3 days
    Reported by:    Claude Opus 4.6
---
 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 6b9bb599a475..9e93992f81e0 100644
--- a/sys/netinet/in_mcast.c
+++ b/sys/netinet/in_mcast.c
@@ -2582,6 +2582,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);
 		}