summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_proc.c
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2007-11-20 18:03:09 +0000
committerrwatson <rwatson@FreeBSD.org>2007-11-20 18:03:09 +0000
commit6651bdd1061d97c80f3f926b4d551b176e42b8d5 (patch)
treead83dceeeb304d3af4180b3c488a1f2268103ddd /sys/kern/kern_proc.c
parent076ec4e67491d0c3bf3ff98f1225755cf706a866 (diff)
downloadFreeBSD-src-6651bdd1061d97c80f3f926b4d551b176e42b8d5.zip
FreeBSD-src-6651bdd1061d97c80f3f926b4d551b176e42b8d5.tar.gz
Test that p_textvp is non-NULL be dereferencing, as no executable vnode is
set for kernel processes. Reported by: Skip Ford <skip at menantico dot com> MFC after: 3 days
Diffstat (limited to 'sys/kern/kern_proc.c')
-rw-r--r--sys/kern/kern_proc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index cd6a20a..0677d7c 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -1242,6 +1242,11 @@ sysctl_kern_proc_pathname(SYSCTL_HANDLER_ARGS)
}
vp = p->p_textvp;
+ if (vp == NULL) {
+ if (*pidp != -1)
+ PROC_UNLOCK(p);
+ return (0);
+ }
vref(vp);
if (*pidp != -1)
PROC_UNLOCK(p);
OpenPOWER on IntegriCloud