diff options
author | Chan-yeol Park <chanyeol.park@samsung.com> | 2013-04-02 14:24:22 +0200 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2013-04-04 11:36:00 +0200 |
commit | 788f0923d3cb5256b12113c041c2381e4b3cecf6 (patch) | |
tree | e351468b54d7b70a8c6542c60aefa5f3e1ac6388 /drivers/bluetooth/hci_ldisc.c | |
parent | Bluetooth: Fix H4 crash from incoming UART packets (diff) | |
download | linux-788f0923d3cb5256b12113c041c2381e4b3cecf6.tar.xz linux-788f0923d3cb5256b12113c041c2381e4b3cecf6.zip |
Bluetooth: Fix possible NULL dereference in hci_uart_tty_receive
This patch adds a NULL check for the HCI UART ldisc driver because some
of HCI UART drivers allow hci_uart_tty_receive function to be called
even though the HCI device hasn't been registered yet.
Signed-off-by: Chan-yeol Park <chanyeol.park@samsung.com>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'drivers/bluetooth/hci_ldisc.c')
-rw-r--r-- | drivers/bluetooth/hci_ldisc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c index ed0fade46aed..d710d8b15012 100644 --- a/drivers/bluetooth/hci_ldisc.c +++ b/drivers/bluetooth/hci_ldisc.c @@ -388,7 +388,10 @@ static void hci_uart_tty_receive(struct tty_struct *tty, const u8 *data, char *f spin_lock(&hu->rx_lock); hu->proto->recv(hu, (void *) data, count); - hu->hdev->stat.byte_rx += count; + + if (hu->hdev) + hu->hdev->stat.byte_rx += count; + spin_unlock(&hu->rx_lock); tty_unthrottle(tty); |