[Bluetooth] Fix NULL pointer dereference in HCI line discipline
authorMarcel Holtmann <marcel@holtmann.org>
Wed, 9 May 2007 07:15:40 +0000 (09:15 +0200)
committerDavid S. Miller <davem@sunset.davemloft.net>
Fri, 11 May 2007 06:45:05 +0000 (23:45 -0700)
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>
drivers/bluetooth/hci_ldisc.c

index 75c15085f81f9a68735ad384705981d1a6407386..e8ae0d7e7716c96527c98cbfe40bdae058e17e73 100644 (file)
@@ -307,7 +307,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);