diff options
author | Robert Watson <rwatson@FreeBSD.org> | 2007-11-20 18:03:09 +0000 |
---|---|---|
committer | Robert Watson <rwatson@FreeBSD.org> | 2007-11-20 18:03:09 +0000 |
commit | 965b55e2b4bd52373f58a3e3d6043384773699c5 (patch) | |
tree | ad83dceeeb304d3af4180b3c488a1f2268103ddd /sys/kern/kern_proc.c | |
parent | 521a1790148fa6eb53e03e5bb92b60cdc913e276 (diff) | |
download | src-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.c | 5 |
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); |