From 0226e94a1c2ebe5ced18af471f56cb99051622f8 Mon Sep 17 00:00:00 2001 From: delphij Date: Mon, 1 Jun 2015 18:15:45 +0000 Subject: Clear p_stops when doing PT_DETACH. Without this, if a process was being traced by truss(1), which uses different p_stops bits than gdb(1), the latter would misbehave because of the unexpected bits. Reported by: jceel Submitted by: sef Sponsored by: iXsystems, Inc. MFC after: 2 weeks --- sys/kern/sys_process.c | 1 + 1 file changed, 1 insertion(+) (limited to 'sys/kern/sys_process.c') diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index 3bf2db8..09a43f4 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -963,6 +963,7 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) CTR1(KTR_PTRACE, "PT_DETACH: pid %d", p->p_pid); p->p_oppid = 0; p->p_flag &= ~(P_TRACED | P_WAITED | P_FOLLOWFORK); + p->p_stops = 0; /* should we send SIGCHLD? */ /* childproc_continued(p); */ -- cgit v1.1