mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
wifi: carl9170: fix OOB read from off-by-two in TX status handler
The bounds check in carl9170_tx_process_status() uses
`i > ((cmd->hdr.len / 2) + 1)` which is off by two, allowing
2 extra iterations past valid _tx_status entries when the firmware-
controlled hdr.ext exceeds hdr.len/2. Fix by using the correct
comparison `i >= (cmd->hdr.len / 2)`.
Fixes: a84fab3cbf ("carl9170: 802.11 rx/tx processing and usb backend")
Signed-off-by: Tristan Madani <tristan@talencesecurity.com>
Acked-by: Christian Lamparter <chunkeey@gmail.com>
Closes: https://syzkaller.appspot.com/bug?extid=5c1ca6ccaa1215781cac
Link: https://patch.msgid.link/20260421134929.325662-3-tristmd@gmail.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
This commit is contained in:
parent
4cde55b2fe
commit
a3f42f1049
|
|
@ -692,7 +692,7 @@ void carl9170_tx_process_status(struct ar9170 *ar,
|
|||
unsigned int i;
|
||||
|
||||
for (i = 0; i < cmd->hdr.ext; i++) {
|
||||
if (WARN_ON(i > ((cmd->hdr.len / 2) + 1))) {
|
||||
if (WARN_ON(i >= (cmd->hdr.len / 2))) {
|
||||
print_hex_dump_bytes("UU:", DUMP_PREFIX_NONE,
|
||||
(void *) cmd, cmd->hdr.len + 4);
|
||||
break;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user