• Dmitry Vyukov's avatar
    tty: don't panic on OOM in tty_set_ldisc() · 5362544b
    Dmitry Vyukov authored
    If tty_ldisc_open() fails in tty_set_ldisc(), it tries to go back
    to the old discipline or N_TTY. But that can fail as well, in such
    case it panics. This is not a graceful way to handle OOM.
    
    Leave ldisc==NULL if all attempts fail instead.
    Also use existing tty_ldisc_reinit() helper function instead of
    tty_ldisc_restore(). Also don't WARN/BUG in tty_ldisc_reinit()
    if N_TTY fails, which would have the same net effect of bringing
    kernel down on OOM. Instead print a single line message about
    what has happened.
    Signed-off-by: default avatarDmitry Vyukov <dvyukov@google.com>
    Cc: syzkaller@googlegroups.com
    Cc: linux-kernel@vger.kernel.org
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Jiri Slaby <jslaby@suse.com>
    Cc: Peter Hurley <peter@hurleysoftware.com>
    Cc: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    5362544b
tty_ldisc.c 17.8 KB