The purpose of this patch series is to prevent undefined behavior caused by arithemetic operations on the content of the char buffer.This is achieved through converting all char buffers to u8 when there is no need for the content to be negative value(which is the case for all touched buffer in this patch series). Converting these char buffers to u8 buffers will make certain types of UB from producing undefined result to well-defined intended (modular) result, and will not introduce any unintended side effect. As an example, changing the local char buf[4] in sisusb_write_mem_bulk to u8 fixes an UB: since buf is filled with data from user space, thus can be negative. Left-shifting this negative value produces undefined result, this can be fixed by changing it from char to u8. This however doesn't apply to ioctl interfaces functions, since the types for buffer of ioctl-like functions need to be char* instead of u8* for compatibility reason. In these cases, the buffer declared as char* will be force cast to u8* when being used. Changming Liu (4): USB: sisusbvga: change sisusb_write_mem_bulk USB: sisusbvga: change the buffers of sisusb from char to u8 USB: sisusbvga: change userbuffer for sisusb_recv_bulk_msg to u8 USB: sisusbvga: change sisusb_read_mem_bulk drivers/usb/misc/sisusbvga/sisusb.c | 34 +++++++++++++++++----------------- drivers/usb/misc/sisusbvga/sisusb.h | 4 ++-- 2 files changed, 19 insertions(+), 19 deletions(-) -- 2.7.4