mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
The plane property loop uses req->properties[num_properties + i] as write
index while simultaneously incrementing `num_properties` inside the loop.
At iteration i, num_properties has also incremented by i, so the write
is done at `initial_num_properties + 2*i`, skipping every other index and
advancing by 2 per iteration.
With just 2 connector and 32 plane properties the last write happens at
index 64, one slot past the end of the 64-slot (indices 0–63)
allocation. A USB device can trigger OOB by advertising the maximum
number of properties.
Fix by dropping the redundant `+ i`; num_properties is already the correct
running index, as gud_connector_fill_properties() fills the preceding
slots.
Fixes:
|
||
|---|---|---|
| .. | ||
| gud_connector.c | ||
| gud_drv.c | ||
| gud_internal.h | ||
| gud_pipe.c | ||
| Kconfig | ||
| Makefile | ||