HID: mcp2221: prevent a buffer overflow in mcp_smbus_write()
stable inclusion from stable-v5.10.137 commit 66c8e816f2f2ca4a61b406503bd10bad1b35f72f category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/I60PLB Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=66c8e816f2f2ca4a61b406503bd10bad1b35f72f -------------------------------- [ Upstream commit 62ac2473 ] Smatch Warning: drivers/hid/hid-mcp2221.c:388 mcp_smbus_write() error: __memcpy() '&mcp->txbuf[5]' too small (59 vs 255) drivers/hid/hid-mcp2221.c:388 mcp_smbus_write() error: __memcpy() 'buf' too small (34 vs 255) The 'len' variable can take a value between 0-255 as it can come from data->block[0] and it is user data. So add an bound check to prevent a buffer overflow in memcpy(). Fixes: 67a95c21 ("HID: mcp2221: add usb to i2c-smbus host bridge") Signed-off-by: NHarshit Mogalapalli <harshit.m.mogalapalli@oracle.com> Signed-off-by: NJiri Kosina <jkosina@suse.cz> Signed-off-by: NSasha Levin <sashal@kernel.org> Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com> Reviewed-by: NWei Li <liwei391@huawei.com>
Showing
想要评论请 注册 或 登录