A common security idiom is to hangup the current tty (via vhangup())
after forking but before execing a root shell. This hangs up any
existing opens which other processes may have and ensures subsequent
opens have the necessary permissions to open the root shell tty/pty.
Reset the TTY_HUPPED state after the driver has successfully
returned the opened tty (perform the reset while the tty is locked
to avoid racing with concurrent hangups).
Reported-by: Heorhi Valakhanovich <[email protected]>
Signed-off-by: Peter Hurley <[email protected]>
Cc: stable <[email protected]> # 3.12
Tested-by: Heorhi Valakhanovich <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
filp->f_op = &tty_fops;
goto retry_open;
}
+ clear_bit(TTY_HUPPED, &tty->flags);
tty_unlock(tty);