diff options
| author | Ali Ahmet Memis <ali@iusegentoo.com> | 2026-08-14 18:28:48 +0000 |
|---|---|---|
| committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2026-08-17 14:24:20 -0400 |
| commit | 1fcf216462ec38f634ca1955572fe01372513370 (patch) | |
| tree | 0994dda65cbc74b22984b30db3c8ecba5e15c3fa /scripts/objdiff | |
| parent | c519ffc1e2c669296b976d11f5e7a79d2f82debb (diff) | |
| download | linux-next-1fcf216462ec38f634ca1955572fe01372513370.tar.gz linux-next-1fcf216462ec38f634ca1955572fe01372513370.zip | |
Bluetooth: btnxpuart: Validate the FW dump header length
nxp_process_fw_dump() pulls the ACL header off the frame and then reads
seq_num and buf_len from a struct nxp_fw_dump_hdr placed at skb->data,
without checking that the ACL payload is long enough to contain it.
h4_recv_buf() collects HCI_ACL_HDR_SIZE bytes of header followed by the
number of payload bytes named in that header, so skb->len is 4 + dlen
with dlen supplied by the controller and possibly smaller than the 8
byte dump header, or zero. A short frame with connection handle 0xfff
therefore reads both fields from beyond the received data.
Beyond the read itself, buf_len is what terminates a dump: a value of
zero makes the driver call hci_devcd_complete() and reset the
controller, so a truncated frame can end a dump early.
Use skb_pull_data() to validate and pull the FW dump header before
accessing its fields. Warn and reject the chunk if the header is
truncated.
Fixes: 998e447f443f ("Bluetooth: btnxpuart: Add support for HCI coredump feature")
Signed-off-by: Ali Ahmet Memis <ali@iusegentoo.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Diffstat (limited to 'scripts/objdiff')
0 files changed, 0 insertions, 0 deletions
