diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2017-10-31 18:39:20 +0000 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2018-07-19 19:28:30 +0000 |
commit | 614f1d633e921143ad22010eeec64ed7c6aa627c (patch) | |
tree | e4239f4950b97ee8726fd9d572d11d78ebe54076 /usr/src | |
parent | f44a1392c9d1c0ff0faf96d4eed0952a6b5cfbe0 (diff) | |
download | illumos-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.c | 13 |
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; |