summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChangming Liu <charley.ashbringer@gmail.com>2020-07-11 00:30:18 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-09-03 11:19:25 +0200
commiteebbe8dbd88893b86c25bc24ffe3227a0ca9b245 (patch)
tree632528be9a79b11f910e830699ef68a68519bb65
parentd7bf4ae5b98909ab7bf4e700da36ea7e52959503 (diff)
USB: sisusbvga: Fix a potential UB casued by left shifting a negative value
[ Upstream commit 2b53a19284f537168fb506f2f40d7fda40a01162 ] The char buffer buf, receives data directly from user space, so its content might be negative and its elements are left shifted to form an unsigned integer. Since left shifting a negative value is undefined behavior, thus change the char to u8 to elimintate this UB. Signed-off-by: Changming Liu <charley.ashbringer@gmail.com> Link: https://lore.kernel.org/r/20200711043018.928-1-charley.ashbringer@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/usb/misc/sisusbvga/sisusb.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/misc/sisusbvga/sisusb.c b/drivers/usb/misc/sisusbvga/sisusb.c
index 22da70fada5e..971f1165dc4b 100644
--- a/drivers/usb/misc/sisusbvga/sisusb.c
+++ b/drivers/usb/misc/sisusbvga/sisusb.c
@@ -790,7 +790,7 @@ static int sisusb_write_mem_bulk(struct sisusb_usb_data *sisusb, u32 addr,
u8 swap8, fromkern = kernbuffer ? 1 : 0;
u16 swap16;
u32 swap32, flag = (length >> 28) & 1;
- char buf[4];
+ u8 buf[4];
/* if neither kernbuffer not userbuffer are given, assume
* data in obuf