diff options
author | 2010-06-27 03:26:39 +0000 | |
---|---|---|
committer | 2010-06-27 03:26:39 +0000 | |
commit | 91d36d8ab1e6caaa4a1def10abf80a0e70d0c688 (patch) | |
tree | 9bdf61e9807903de2031f07656096d3b7b28f868 /sys/kern/kern_fork.c | |
parent | Instead of (manually) closing the _thread_kern_pipe before calling (diff) | |
download | wireguard-openbsd-91d36d8ab1e6caaa4a1def10abf80a0e70d0c688.tar.xz wireguard-openbsd-91d36d8ab1e6caaa4a1def10abf80a0e70d0c688.zip |
A process on the zombie list can have a NULL p_pgrp if it sleeps when
grabbing allproclk in proc_zap(); don't dereference the process's p_pgrp
if that happens.
ok art@ thib@
Diffstat (limited to 'sys/kern/kern_fork.c')
-rw-r--r-- | sys/kern/kern_fork.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c index b67e1e0af96..6721ea107d0 100644 --- a/sys/kern/kern_fork.c +++ b/sys/kern/kern_fork.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_fork.c,v 1.111 2010/05/29 02:47:48 guenther Exp $ */ +/* $OpenBSD: kern_fork.c,v 1.112 2010/06/27 03:26:39 guenther Exp $ */ /* $NetBSD: kern_fork.c,v 1.29 1996/02/09 18:59:34 christos Exp $ */ /* @@ -517,7 +517,7 @@ pidtaken(pid_t pid) if (pgfind(pid) != NULL) return (1); LIST_FOREACH(p, &zombproc, p_list) - if (p->p_pid == pid || p->p_pgid == pid) + if (p->p_pid == pid || (p->p_pgrp && p->p_pgrp->pg_id == pid)) return (1); return (0); } |