tty: Flush tty buffers after hardware shutdown
authorPeter Hurley <peter@hurleysoftware.com>
Wed, 5 Nov 2014 17:40:05 +0000 (12:40 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 6 Nov 2014 22:57:27 +0000 (14:57 -0800)
The line discipline buffer and the tty buffers must be flushed again
after hardware shutdown; otherwise, a brief window exists between the
ldisc flush in tty_port_close_start() and the subsequent
tty_port_shutdown(), during which more data could be received into the
tty buffers. A racing open might then be able to receive data from the
previous session.

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/tty_port.c

index 3b641d115fd254b5c28ee67a48eb658a79d18385..4d9abaa81be4288f5e92e258aba2c7d5b6d8b2a1 100644 (file)
@@ -520,6 +520,7 @@ void tty_port_close_end(struct tty_port *port, struct tty_struct *tty)
 {
        unsigned long flags;
 
+       tty_ldisc_flush(tty);
        tty->closing = 0;
 
        spin_lock_irqsave(&port->lock, flags);