aboutsummaryrefslogtreecommitdiffstats
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-07-15 16:48:10 +0200
commit2b53a19284f537168fb506f2f40d7fda40a01162 (patch)
treed8eef43a1976f0773698edf9c26f475b4a7bf40a
parentUSB: Remove pci-dma-compat wrapper APIs. (diff)
downloadlinux-dev-2b53a19284f537168fb506f2f40d7fda40a01162.tar.xz
linux-dev-2b53a19284f537168fb506f2f40d7fda40a01162.zip
USB: sisusbvga: Fix a potential UB casued by left shifting a negative value
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>
-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 88c4975e303d..f08de33d9ff3 100644
--- a/drivers/usb/misc/sisusbvga/sisusb.c
+++ b/drivers/usb/misc/sisusbvga/sisusb.c
@@ -761,7 +761,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