git: b00382555656 - stable/15 - libthr: reject count < 0

From: ShengYi Hung <aokblast_at_FreeBSD.org>
Date: Sun, 01 Nov 2026 22:08:39 UTC
The branch stable/15 has been updated by aokblast:

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

commit b0038255565601c1a36250eb2101acc4b8f3baad
Author:     ShengYi Hung <aokblast@FreeBSD.org>
AuthorDate: 2026-10-07 01:30:56 +0000
Commit:     ShengYi Hung <aokblast@FreeBSD.org>
CommitDate: 2026-11-01 22:07:54 +0000

    libthr: reject count < 0
    
    This causes count == -1 spin for INT_MAX times in userspace.
    
    Reviewed by:    kib
    MFC after:      2 weeks
    Differential Revision: https://reviews.freebsd.org/D60425
    
    (cherry picked from commit 627e7d5b72cf967eae3cd9e9e0707ce0ff63a4da)
---
 lib/libthr/thread/thr_mutex.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/libthr/thread/thr_mutex.c b/lib/libthr/thread/thr_mutex.c
index 1787db825bf3..ccb3094db16d 100644
--- a/lib/libthr/thread/thr_mutex.c
+++ b/lib/libthr/thread/thr_mutex.c
@@ -1109,6 +1109,8 @@ __pthread_mutex_setspinloops_np(pthread_mutex_t *mutex, int count)
 	struct pthread_mutex *m;
 	int ret;
 
+	if (count < 0)
+		return (EINVAL);
 	ret = check_and_init_mutex(mutex, &m);
 	if (ret == 0)
 		m->m_spinloops = count;
@@ -1133,6 +1135,8 @@ __pthread_mutex_setyieldloops_np(pthread_mutex_t *mutex, int count)
 	struct pthread_mutex *m;
 	int ret;
 
+	if (count < 0)
+		return (EINVAL);
 	ret = check_and_init_mutex(mutex, &m);
 	if (ret == 0)
 		m->m_yieldloops = count;