Tue Oct 13 00:24:35 2015 UTC ()
In execve_runproc(), update the p_waited entry for the process being
moved to SSTOP state, not for its parent. (It is correct to update
the parent's p_nstopchild count.) If the value is not already zero,
it could prevent its parent from waiting for the process.
Fixes PR kern/50298
Pullups will be requested for:
NetBSD-7, -6, -6-0, -6-1, -5, -5-0, -5-1, and -5-2
(pgoyette)
diff -r1.418 -r1.419 src/sys/kern/kern_exec.c
--- src/sys/kern/kern_exec.c 2015/10/02 16:54:15 1.418
+++ src/sys/kern/kern_exec.c 2015/10/13 00:24:35 1.419
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_exec.c,v 1.418 2015/10/02 16:54:15 christos Exp $ */
+/* $NetBSD: kern_exec.c,v 1.419 2015/10/13 00:24:35 pgoyette Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -59,7 +59,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.418 2015/10/02 16:54:15 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.419 2015/10/13 00:24:35 pgoyette Exp $");
#include "opt_exec.h"
#include "opt_execfmt.h"
@@ -1282,7 +1282,7 @@
KERNEL_UNLOCK_ALL(l, &l->l_biglocks);
p->p_pptr->p_nstopchild++;
- p->p_pptr->p_waited = 0;
+ p->p_waited = 0;
mutex_enter(p->p_lock);
ksiginfo_queue_init(&kq);
sigclearall(p, &contsigmask, &kq);