Commit 2b53a192 authored by Changming Liu's avatar Changming Liu Committed by Greg Kroah-Hartman

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: default avatarChangming Liu <charley.ashbringer@gmail.com>
Link: https://lore.kernel.org/r/20200711043018.928-1-charley.ashbringer@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 48025b4f
...@@ -761,7 +761,7 @@ static int sisusb_write_mem_bulk(struct sisusb_usb_data *sisusb, u32 addr, ...@@ -761,7 +761,7 @@ static int sisusb_write_mem_bulk(struct sisusb_usb_data *sisusb, u32 addr,
u8 swap8, fromkern = kernbuffer ? 1 : 0; u8 swap8, fromkern = kernbuffer ? 1 : 0;
u16 swap16; u16 swap16;
u32 swap32, flag = (length >> 28) & 1; u32 swap32, flag = (length >> 28) & 1;
char buf[4]; u8 buf[4];
/* if neither kernbuffer not userbuffer are given, assume /* if neither kernbuffer not userbuffer are given, assume
* data in obuf * data in obuf
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment