diff options
-rw-r--r-- | sys/kern/tty_tty.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/tty_tty.c b/sys/kern/tty_tty.c index 5a99d25..b83f924 100644 --- a/sys/kern/tty_tty.c +++ b/sys/kern/tty_tty.c @@ -64,7 +64,11 @@ ctty_clone(void *arg, struct ucred *cred, char *name, int namelen, *dev = ctty; else if (curthread->td_proc->p_session->s_ttyvp == NULL) *dev = ctty; - else + else if (curthread->td_proc->p_session->s_ttyvp->v_type == VBAD || + curthread->td_proc->p_session->s_ttyvp->v_rdev == NULL) { + /* e.g. s_ttyvp was revoked */ + return; + } else *dev = curthread->td_proc->p_session->s_ttyvp->v_rdev; dev_ref(*dev); } |