Re: [PATCH v2] tty: Fix WARNING in tty_set_termios()

From: shuah
Date: Fri Feb 01 2019 - 18:21:16 EST


On 1/31/19 5:14 PM, Greg KH wrote:
On Thu, Jan 31, 2019 at 04:23:59PM -0700, Shuah Khan wrote:
tty_set_termios() has the following WARN_ON which can be triggered with a
syscall to invoke TIOCSETD __NR_ioctl.

WARN_ON(tty->driver->type == TTY_DRIVER_TYPE_PTY &&
tty->driver->subtype == PTY_TYPE_MASTER);
Reference: https://syzkaller.appspot.com/bug?id=2410d22f1d8e5984217329dd0884b01d99e3e48d

The problem started with commit 7721383f4199 ("Bluetooth: hci_uart: Support
operational speed during setup") which introduced a new way for how
tty_set_termios() could end up being called for a master pty.

Fix the problem by preventing setting the HCI line discipline for PTYs
from hci_uart_setup() and hci_uart_set_flow_control().

The reproducer is used to reproduce the problem and verify the fix.

Reported-by: syzbot+a950165cbb86bdd023a4@xxxxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Shuah Khan <shuah@xxxxxxxxxx>
---
drivers/bluetooth/hci_ldisc.c | 11 +++++++++++
1 file changed, 11 insertions(+)

I think the subject should be something like:
"bluetooth: hci: Fix warning in tty_set_termios()"
it isn't a tty core problem :)


Yes. Sorry about that. Will get it right in my v3.

thanks,
-- Shuah