diff options
| author | Jiale Yao <yaojiale02@163.com> | 2026-09-24 22:44:10 +0800 |
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.com> | 2026-10-16 11:36:47 +0200 |
| commit | 1ae40774d386b7a51e4799200106429a7e14e8ec (patch) | |
| tree | 63c066c380d4bde3c8aac23e9c3fbacd1effdea7 /tools/perf/scripts/python/stackcollapse.py | |
| parent | 26ce0e6bf0b27fc6a2f490f38555dfd0a27c9605 (diff) | |
HID: mcp2221: validate response report length
MCP2221 responses are 64-byte reports, but mcp2221_raw_event() currently
accepts any report of at least four bytes. Several response handlers read
far beyond that minimum. In particular, the I2C status response reads
offset 20 and copies ADC samples starting at offset 50. Other GPIO, SRAM,
and flash response handlers also access fixed offsets beyond byte three.
The HID core invokes raw_event callbacks before validating the report
length, so a truncated response can cause an out-of-bounds read. Require a
complete protocol report before dispatching any response handler.
Commit 47669bec44fe ("HID: asus: refactor the two workqueues and init
sequence") added the same kind of raw_event length validation to hid-asus.
Fixes: 67a95c21463d ("HID: mcp2221: add usb to i2c-smbus host bridge")
Cc: stable@vger.kernel.org
Signed-off-by: Jiale Yao <yaojiale02@163.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
