[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240502021709.141220-1-iam@sung-woo.kim>
Date: Wed, 1 May 2024 22:17:09 -0400
From: Sungwoo Kim <iam@...g-woo.kim>
To:
Cc: daveti@...due.edu,
benquike@...il.com,
Sungwoo Kim <iam@...g-woo.kim>,
Marcel Holtmann <marcel@...tmann.org>,
Johan Hedberg <johan.hedberg@...il.com>,
Luiz Augusto von Dentz <luiz.dentz@...il.com>,
linux-bluetooth@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH] Bluetooth: HCI: Fix potential null-ptr-deref
Dear all,
hci_le_big_sync_established_evt() has a potential null-ptr-deref bug.
hci_le_big_sync_established_evt()
bis = hci_conn_hash_lookup_handle(hdev, handle);
if (!bis)
bis = hci_conn_add() <- could fail
/* ... */
bis = hci_conn_hash_lookup_handle(hdev, handle);
set_bit(HCI_CONN_BIG_SYNC_FAILED, &bis->flags); <- null-ptr-deref
There is a missing check after hci_conn_hash_lookup_handle(), which can
return NULL. Especially, if a prior hci_conn_add() fails than
hci_conn_hash_lookup_handle() will return NULL.
This patch fixes this by adding a check.
Thanks,
Sungwoo.
Signed-off-by: Sungwoo Kim <iam@...g-woo.kim>
---
net/bluetooth/hci_event.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 4a27e4a17..d72d238c1 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -7037,6 +7037,8 @@ static void hci_le_big_sync_established_evt(struct hci_dev *hdev, void *data,
u16 handle = le16_to_cpu(ev->bis[i]);
bis = hci_conn_hash_lookup_handle(hdev, handle);
+ if (!bis)
+ continue;
set_bit(HCI_CONN_BIG_SYNC_FAILED, &bis->flags);
hci_connect_cfm(bis, ev->status);
--
2.34.1
Powered by blists - more mailing lists