diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2024-02-28 16:56:49 +0100 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2024-03-06 23:26:23 +0100 |
commit | a6e06258f4c31eba0fcd503e19828b5f8fe7b08b (patch) | |
tree | a709b2a2043bf79b257c8b2286218f9107e4f329 | |
parent | Bluetooth: hci_core: Fix possible buffer overflow (diff) | |
download | linux-a6e06258f4c31eba0fcd503e19828b5f8fe7b08b.tar.xz linux-a6e06258f4c31eba0fcd503e19828b5f8fe7b08b.zip |
Bluetooth: msft: Fix memory leak
Fix leaking buffer allocated to send MSFT_OP_LE_MONITOR_ADVERTISEMENT.
Fixes: 9e14606d8f38 ("Bluetooth: msft: Extended monitor tracking by address filter")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
-rw-r--r-- | net/bluetooth/msft.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/bluetooth/msft.c b/net/bluetooth/msft.c index 630e3023273b..9612c5d1b13f 100644 --- a/net/bluetooth/msft.c +++ b/net/bluetooth/msft.c @@ -875,6 +875,7 @@ static int msft_add_address_filter_sync(struct hci_dev *hdev, void *data) remove = true; goto done; } + cp->sub_opcode = MSFT_OP_LE_MONITOR_ADVERTISEMENT; cp->rssi_high = address_filter->rssi_high; cp->rssi_low = address_filter->rssi_low; @@ -887,6 +888,8 @@ static int msft_add_address_filter_sync(struct hci_dev *hdev, void *data) skb = __hci_cmd_sync(hdev, hdev->msft_opcode, size, cp, HCI_CMD_TIMEOUT); + kfree(cp); + if (IS_ERR(skb)) { bt_dev_err(hdev, "Failed to enable address %pMR filter", &address_filter->bdaddr); |