summaryrefslogtreecommitdiff
path: root/tools/lib/python/feat/parse_features.py
diff options
context:
space:
mode:
authorGopi Krishna Menon <krishnagopi487@gmail.com>2025-10-28 22:26:57 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-11-21 15:17:18 +0100
commita5160af78be7fcf3ade6caab0a14e349560c96d7 (patch)
tree433a669d9600abb7bd1853efae413be5bf8dab73 /tools/lib/python/feat/parse_features.py
parenta75a5b148b4e1d7c0525359be455d5a54024b714 (diff)
usb: raw-gadget: cap raw_io transfer length to KMALLOC_MAX_SIZE
The previous commit removed the PAGE_SIZE limit on transfer length of raw_io buffer in order to avoid any problems with emulating USB devices whose full configuration descriptor exceeds PAGE_SIZE in length. However this also removes the upperbound on user supplied length, allowing very large values to be passed to the allocator. syzbot on fuzzing the transfer length with very large value (1.81GB) results in kmalloc() to fall back to the page allocator, which triggers a kernel warning as the page allocator cannot handle allocations more than MAX_PAGE_ORDER/KMALLOC_MAX_SIZE. Since there is no limit imposed on the size of buffer for both control and non control transfers, cap the raw_io transfer length to KMALLOC_MAX_SIZE and return -EINVAL for larger transfer length to prevent any warnings from the page allocator. Fixes: 37b9dd0d114a ("usb: raw-gadget: do not limit transfer length") Tested-by: syzbot+d8fd35fa6177afa8c92b@syzkaller.appspotmail.com Reported-by: syzbot+d8fd35fa6177afa8c92b@syzkaller.appspotmail.com Closes: https://lore.kernel.org/all/68fc07a0.a70a0220.3bf6c6.01ab.GAE@google.com/ Signed-off-by: Gopi Krishna Menon <krishnagopi487@gmail.com> Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com> Link: https://patch.msgid.link/20251028165659.50962-1-krishnagopi487@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools/lib/python/feat/parse_features.py')
0 files changed, 0 insertions, 0 deletions