Skip to content

Commit

Permalink
USB: sisusbvga: Fix a potential UB casued by left shifting a negative…
Browse files Browse the repository at this point in the history
… value

[ Upstream commit 2b53a19 ]

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>
  • Loading branch information
Lawliar authored and gregkh committed Sep 3, 2020
1 parent e77f71c commit 7aac56d
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/usb/misc/sisusbvga/sisusb.c
Expand Up @@ -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
Expand Down

0 comments on commit 7aac56d

Please sign in to comment.