diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index 07275d0e30a2..9d1e247ee330 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -516,8 +516,11 @@ static void __proc_set_tty(struct tty_struct *tty) { unsigned long flags; - /* We should not have a session or pgrp to put here but.... */ spin_lock_irqsave(&tty->ctrl_lock, flags); + /* + * The session and fg pgrp references will be non-NULL if + * tiocsctty() is stealing the controlling tty + */ put_pid(tty->session); put_pid(tty->pgrp); tty->pgrp = get_pid(task_pgrp(current));