summaryrefslogtreecommitdiff
path: root/sys/kern/kern_proc.c
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2008-04-10 22:58:59 +0000
committerRobert Watson <rwatson@FreeBSD.org>2008-04-10 22:58:59 +0000
commit637ba6cb3c784ec4e8583ac94a836ec8eb739680 (patch)
tree02c38c38fcae6f180ce536e47b97da87a9d2b8d8 /sys/kern/kern_proc.c
parent8a16e122d4212d24a517130d8ad59f6e7ee29c84 (diff)
Notes
Diffstat (limited to 'sys/kern/kern_proc.c')
-rw-r--r--sys/kern/kern_proc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index 4e0fa4b92a41..3f8c316a2c49 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -1310,6 +1310,10 @@ sysctl_kern_proc_vmmap(SYSCTL_HANDLER_ARGS)
name = (int *)arg1;
if ((p = pfind((pid_t)name[0])) == NULL)
return (ESRCH);
+ if (p->p_flag & P_WEXIT) {
+ PROC_UNLOCK(p);
+ return (ESRCH);
+ }
if ((error = p_candebug(curthread, p))) {
PROC_UNLOCK(p);
return (error);
@@ -1458,6 +1462,10 @@ sysctl_kern_proc_kstack(SYSCTL_HANDLER_ARGS)
name = (int *)arg1;
if ((p = pfind((pid_t)name[0])) == NULL)
return (ESRCH);
+ if (p->p_flag & P_WEXIT) {
+ PROC_UNLOCK(p);
+ return (ESRCH);
+ }
if ((error = p_candebug(curthread, p))) {
PROC_UNLOCK(p);
return (error);