git: df9c60beea7c - stable/14 - thread_single(9): decline external requests for traced or debugger-stopped procs

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Thu, 04 Apr 2024 02:45:02 UTC
The branch stable/14 has been updated by kib:

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

commit df9c60beea7c5d6d21c3e9e892f4e97a4bb7b4d8
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2024-03-27 12:29:25 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2024-04-04 02:44:38 +0000

    thread_single(9): decline external requests for traced or debugger-stopped procs
    
    (cherry picked from commit 9241ebc796c11cf133c550f188f324bd2c12d89a)
---
 sys/kern/kern_thread.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sys/kern/kern_thread.c b/sys/kern/kern_thread.c
index d8ba94925fec..1586d6c664fe 100644
--- a/sys/kern/kern_thread.c
+++ b/sys/kern/kern_thread.c
@@ -1249,6 +1249,9 @@ thread_single(struct proc *p, int mode)
 				return (1);
 			msleep(&p->p_flag, &p->p_mtx, PCATCH, "thrsgl", 0);
 		}
+		if ((p->p_flag & (P_STOPPED_SIG | P_TRACED)) != 0 ||
+		    (p->p_flag2 & P2_WEXIT) != 0)
+			return (1);
 	} else if ((p->p_flag & P_HADTHREADS) == 0)
 		return (0);
 	if (p->p_singlethread != NULL && p->p_singlethread != td)