diff options
author | rwatson <rwatson@FreeBSD.org> | 2007-11-20 18:03:09 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2007-11-20 18:03:09 +0000 |
commit | 6651bdd1061d97c80f3f926b4d551b176e42b8d5 (patch) | |
tree | ad83dceeeb304d3af4180b3c488a1f2268103ddd /sys/kern/kern_proc.c | |
parent | 076ec4e67491d0c3bf3ff98f1225755cf706a866 (diff) | |
download | FreeBSD-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.c | 5 |
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); |