]> git.baikalelectronics.ru Git - kernel.git/commit
HID: cp2112: prevent a buffer overflow in cp2112_xfer()
authorHarshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Wed, 8 Jun 2022 12:26:09 +0000 (05:26 -0700)
committerJiri Kosina <jkosina@suse.cz>
Thu, 9 Jun 2022 08:55:46 +0000 (10:55 +0200)
commit59314ed4379060480590f8adb47e0a04eeb4eb3c
tree5811e31e13ed7e4d8b8339009fbf5ca05e56ffdd
parent2190175c67cad6f2130f1164479ce87017c08b77
HID: cp2112: prevent a buffer overflow in cp2112_xfer()

Smatch warnings:
drivers/hid/hid-cp2112.c:793 cp2112_xfer() error: __memcpy()
'data->block[1]' too small (33 vs 255)
drivers/hid/hid-cp2112.c:793 cp2112_xfer() error: __memcpy() 'buf' too
small (64 vs 255)

The 'read_length' variable is provided by 'data->block[0]' which comes
from user and it(read_length) can take a value between 0-255. Add an
upper bound to 'read_length' variable to prevent a buffer overflow in
memcpy().

Fixes: 1bea6f7972d6 ("HID: cp2112: Fix I2C_BLOCK_DATA transactions")
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-cp2112.c