• Sahara's avatar
    tty: pty: Fix race condition between release_one_tty and pty_write · b9ca5f85
    Sahara authored
    Especially when a linked tty is used such as pty, the linked tty
    port's buf works have not been cancelled while master tty port's
    buf work has been cancelled. Since release_one_tty and flush_to_ldisc
    run in workqueue threads separately, when pty_cleanup happens and
    link tty port is freed, flush_to_ldisc tries to access freed port
    and port->itty, eventually it causes a panic.
    This patch utilizes the magic value with holding the tty_mutex to
    check if the tty->link is valid.
    
    Fixes: 2b022ab7 ("pty: cancel pty slave port buf's work in tty_release")
    Signed-off-by: default avatarSahara <keun-o.park@darkmatter.ae>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    b9ca5f85
tty_io.c 85.5 KB