]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
n_tty: Fix stall at n_tty_receive_char_special().
authorTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Sat, 26 May 2018 00:53:13 +0000 (09:53 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Jun 2018 12:30:16 +0000 (21:30 +0900)
commit3d63b7e4ae0dc5e02d28ddd2fa1f945defc68d81
tree4c72cbec570647876d8060aa4cb85cc4f3dfb796
parent7daf201d7fe8334e2d2364d4e8ed3394ec9af819
n_tty: Fix stall at n_tty_receive_char_special().

syzbot is reporting stalls at n_tty_receive_char_special() [1]. This is
because comparison is not working as expected since ldata->read_head can
change at any moment. Mitigate this by explicitly masking with buffer size
when checking condition for "while" loops.

[1] https://syzkaller.appspot.com/bug?id=3d7481a346958d9469bebbeb0537d5f056bdd6e8

Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Reported-by: syzbot <syzbot+18df353d7540aa6b5467@syzkaller.appspotmail.com>
Fixes: bc5a5e3f45d04784 ("n_tty: Don't wrap input buffer indices at buffer size")
Cc: stable <stable@vger.kernel.org>
Cc: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/n_tty.c