summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManish Mandlik <mmandlik@google.com>2023-08-04 11:14:45 -0700
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2023-08-11 11:56:35 -0700
commita2bcd2b63271a93a695fabbfbf459c603d956d48 (patch)
tree815444d71ee42efd9d83bbd29077fa8afa3b51d6
parent3673952cf0c6cf81b06c66a0b788abeeb02ff3ae (diff)
downloadlinux-a2bcd2b63271a93a695fabbfbf459c603d956d48.tar.gz
linux-a2bcd2b63271a93a695fabbfbf459c603d956d48.tar.bz2
linux-a2bcd2b63271a93a695fabbfbf459c603d956d48.zip
Bluetooth: hci_sync: Avoid use-after-free in dbg for hci_add_adv_monitor()
KSAN reports use-after-free in hci_add_adv_monitor(). While adding an adv monitor, hci_add_adv_monitor() calls -> msft_add_monitor_pattern() calls -> msft_add_monitor_sync() calls -> msft_le_monitor_advertisement_cb() calls in an error case -> hci_free_adv_monitor() which frees the *moniter. This is referenced by bt_dev_dbg() in hci_add_adv_monitor(). Fix the bt_dev_dbg() by using handle instead of monitor->handle. Fixes: b747a83690c8 ("Bluetooth: hci_sync: Refactor add Adv Monitor") Signed-off-by: Manish Mandlik <mmandlik@google.com> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
-rw-r--r--net/bluetooth/hci_core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index d7552b394ac2..a5992f1b3c9b 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -1957,7 +1957,7 @@ int hci_add_adv_monitor(struct hci_dev *hdev, struct adv_monitor *monitor)
case HCI_ADV_MONITOR_EXT_MSFT:
status = msft_add_monitor_pattern(hdev, monitor);
bt_dev_dbg(hdev, "add monitor %d msft status %d",
- monitor->handle, status);
+ handle, status);
break;
}