diff options
author | Ohad Ben-Cohen <ohad@bencohen.org> | 2007-11-02 04:41:26 +0100 |
---|---|---|
committer | Adrian Bunk <bunk@kernel.org> | 2007-11-02 04:41:26 +0100 |
commit | 9ebf0663c8af671f9d37f9d51eb80e26a5b1fe2b (patch) | |
tree | 6d6507a2f2a82a5e3a3372efe642554dc5e6b077 | |
parent | 8e99f6e590f3b3790697bb324ba3d59f1a99f08a (diff) | |
download | linux-stable-9ebf0663c8af671f9d37f9d51eb80e26a5b1fe2b.tar.gz linux-stable-9ebf0663c8af671f9d37f9d51eb80e26a5b1fe2b.tar.bz2 linux-stable-9ebf0663c8af671f9d37f9d51eb80e26a5b1fe2b.zip |
[Bluetooth] Fix NULL pointer dereference in HCI line discipline
Normally a serial Bluetooth device is opened, TIOSETD'ed to N_HCI line
discipline, HCIUARTSETPROTO'ed and finally closed. In case the device
fails to HCIUARTSETPROTO, closing it produces a NULL pointer dereference.
Signed-off-by: Ohad Ben-Cohen <ohad@bencohen.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Adrian Bunk <bunk@kernel.org>
-rw-r--r-- | drivers/bluetooth/hci_ldisc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c index 4c0e6d85673d..9e42cc49dce0 100644 --- a/drivers/bluetooth/hci_ldisc.c +++ b/drivers/bluetooth/hci_ldisc.c @@ -313,7 +313,9 @@ static void hci_uart_tty_close(struct tty_struct *tty) if (hu) { struct hci_dev *hdev = hu->hdev; - hci_uart_close(hdev); + + if (hdev) + hci_uart_close(hdev); if (test_and_clear_bit(HCI_UART_PROTO_SET, &hu->flags)) { hu->proto->close(hu); |