aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/kern_proc.c
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2007-11-20 18:03:09 +0000
committerRobert Watson <rwatson@FreeBSD.org>2007-11-20 18:03:09 +0000
commit965b55e2b4bd52373f58a3e3d6043384773699c5 (patch)
treead83dceeeb304d3af4180b3c488a1f2268103ddd /sys/kern/kern_proc.c
parent521a1790148fa6eb53e03e5bb92b60cdc913e276 (diff)
downloadsrc-965b55e2b4bd52373f58a3e3d6043384773699c5.tar.gz
src-965b55e2b4bd52373f58a3e3d6043384773699c5.zip
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
Notes
Notes: svn path=/head/; revision=173781
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 cd6a20ab9114..0677d7c12a69 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);