summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChan-yeol Park <chanyeol.park@samsung.com>2013-04-02 14:24:22 +0200
committerJohan Hedberg <johan.hedberg@intel.com>2013-04-04 11:36:00 +0200
commit788f0923d3cb5256b12113c041c2381e4b3cecf6 (patch)
treee351468b54d7b70a8c6542c60aefa5f3e1ac6388
parentBluetooth: Fix H4 crash from incoming UART packets (diff)
downloadlinux-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>
-rw-r--r--drivers/bluetooth/hci_ldisc.c5
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);