summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2017-10-31 18:39:20 +0000
committerRobert Mustacchi <rm@joyent.com>2018-07-19 19:28:30 +0000
commit614f1d633e921143ad22010eeec64ed7c6aa627c (patch)
treee4239f4950b97ee8726fd9d572d11d78ebe54076 /usr/src
parentf44a1392c9d1c0ff0faf96d4eed0952a6b5cfbe0 (diff)
downloadillumos-gate-614f1d633e921143ad22010eeec64ed7c6aa627c.tar.gz
9055 panic in prgetattr
Reviewed by: Jason King <jason.king@joyent.com> Reviewed by: Rich Lowe <richlowe@richlowe.net> Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/fs/proc/prvnops.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/usr/src/uts/common/fs/proc/prvnops.c b/usr/src/uts/common/fs/proc/prvnops.c
index dedf1127cb..9a08f0c030 100644
--- a/usr/src/uts/common/fs/proc/prvnops.c
+++ b/usr/src/uts/common/fs/proc/prvnops.c
@@ -1592,6 +1592,11 @@ pr_read_spymaster(prnode_t *pnp, uio_t *uiop)
if ((error = prlock(pnp, ZNO)) != 0)
return (error);
+ if (pnp->pr_common->prc_thread == NULL) {
+ prunlock(pnp);
+ return (0);
+ }
+
lwp = pnp->pr_common->prc_thread->t_lwp;
if (lwp->lwp_spymaster == NULL) {
@@ -2621,6 +2626,11 @@ pr_read_spymaster_32(prnode_t *pnp, uio_t *uiop)
if ((error = prlock(pnp, ZNO)) != 0)
return (error);
+ if (pnp->pr_common->prc_thread == NULL) {
+ prunlock(pnp);
+ return (0);
+ }
+
lwp = pnp->pr_common->prc_thread->t_lwp;
if (lwp->lwp_spymaster == NULL) {
@@ -3147,7 +3157,8 @@ prgetattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr,
vap->va_size = 0;
break;
case PR_SPYMASTER:
- if (pnp->pr_common->prc_thread->t_lwp->lwp_spymaster != NULL) {
+ if (pnp->pr_common->prc_thread != NULL &&
+ pnp->pr_common->prc_thread->t_lwp->lwp_spymaster != NULL) {
vap->va_size = PR_OBJSIZE(psinfo32_t, psinfo_t);
} else {
vap->va_size = 0;