diff options
author | Philip Guenthe <guenther@cvs.openbsd.org> | 2011-04-18 21:44:57 +0000 |
---|---|---|
committer | Philip Guenthe <guenther@cvs.openbsd.org> | 2011-04-18 21:44:57 +0000 |
commit | bce64c2a24fb4484b18813bef367dcc71e8a0dd0 (patch) | |
tree | dfc7f71507d6c603255802772ca128609460ca08 /sys/kern/tty.c | |
parent | fd1b35e57ce1fdce5ec1dc979ff36b7649cab0c5 (diff) |
Revert the sigacts diff: NFS can apparently retain pointers to processes
until they're zombies and then send them signals (for intr mounts). Until
that is untangled, the sigacts change is unsafe. sthen@ was the victim
for this one
Diffstat (limited to 'sys/kern/tty.c')
-rw-r--r-- | sys/kern/tty.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/kern/tty.c b/sys/kern/tty.c index fbb6921eecc..1cf4a411f35 100644 --- a/sys/kern/tty.c +++ b/sys/kern/tty.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tty.c,v 1.90 2011/04/15 04:52:40 guenther Exp $ */ +/* $OpenBSD: tty.c,v 1.91 2011/04/18 21:44:56 guenther Exp $ */ /* $NetBSD: tty.c,v 1.68.4.2 1996/06/06 16:04:52 thorpej Exp $ */ /*- @@ -750,7 +750,7 @@ ttioctl(struct tty *tp, u_long cmd, caddr_t data, int flag, struct proc *p) #endif while (isbackground(pr, tp) && (pr->ps_flags & PS_PPWAIT) == 0 && - (p->p_sigacts->ps_sigignore & sigmask(SIGTTOU)) == 0 && + (p->p_sigignore & sigmask(SIGTTOU)) == 0 && (p->p_sigmask & sigmask(SIGTTOU)) == 0) { if (pr->ps_pgrp->pg_jobc == 0) return (EIO); @@ -1462,7 +1462,7 @@ loop: lflag = tp->t_lflag; * Hang process if it's in the background. */ if (isbackground(pr, tp)) { - if ((p->p_sigacts->ps_sigignore & sigmask(SIGTTIN)) || + if ((p->p_sigignore & sigmask(SIGTTIN)) || (p->p_sigmask & sigmask(SIGTTIN)) || pr->ps_flags & PS_PPWAIT || pr->ps_pgrp->pg_jobc == 0) { error = EIO; @@ -1719,7 +1719,7 @@ loop: pr = p->p_p; if (isbackground(pr, tp) && ISSET(tp->t_lflag, TOSTOP) && (pr->ps_flags & PS_PPWAIT) == 0 && - (p->p_sigacts->ps_sigignore & sigmask(SIGTTOU)) == 0 && + (p->p_sigignore & sigmask(SIGTTOU)) == 0 && (p->p_sigmask & sigmask(SIGTTOU)) == 0) { if (pr->ps_pgrp->pg_jobc == 0) { error = EIO; |