summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOhad Ben-Cohen <ohad@bencohen.org>2007-11-02 04:41:26 +0100
committerAdrian Bunk <bunk@kernel.org>2007-11-02 04:41:26 +0100
commit9ebf0663c8af671f9d37f9d51eb80e26a5b1fe2b (patch)
tree6d6507a2f2a82a5e3a3372efe642554dc5e6b077
parent8e99f6e590f3b3790697bb324ba3d59f1a99f08a (diff)
downloadlinux-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.c4
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);