diff options
author | Johan Hovold <johan+linaro@kernel.org> | 2024-05-01 14:34:53 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-05-17 12:02:38 +0200 |
commit | ba307abed5e09759845c735ba036f8c12f55b209 (patch) | |
tree | 6b4d297a6a27323e88d1f1ea1440642bbed05fa1 /drivers/bluetooth | |
parent | 9d23305f861085439fd102957c9de44c7f69d6a7 (diff) | |
download | linux-ba307abed5e09759845c735ba036f8c12f55b209.tar.gz linux-ba307abed5e09759845c735ba036f8c12f55b209.tar.bz2 linux-ba307abed5e09759845c735ba036f8c12f55b209.zip |
Bluetooth: qca: fix info leak when fetching board id
commit 0adcf6be1445ed50bfd4a451a7a782568f270197 upstream.
Add the missing sanity check when fetching the board id to avoid leaking
slab data when later requesting the firmware.
Fixes: a7f8dedb4be2 ("Bluetooth: qca: add support for QCA2066")
Cc: stable@vger.kernel.org # 6.7
Cc: Tim Jiang <quic_tjiang@quicinc.com>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/bluetooth')
-rw-r--r-- | drivers/bluetooth/btqca.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/bluetooth/btqca.c b/drivers/bluetooth/btqca.c index c6b2dd4d1716..4f856ac97e33 100644 --- a/drivers/bluetooth/btqca.c +++ b/drivers/bluetooth/btqca.c @@ -235,6 +235,11 @@ static int qca_read_fw_board_id(struct hci_dev *hdev, u16 *bid) goto out; } + if (skb->len < 3) { + err = -EILSEQ; + goto out; + } + *bid = (edl->data[1] << 8) + edl->data[2]; bt_dev_dbg(hdev, "%s: bid = %x", __func__, *bid); |