From: Greg KH <gregkh@linuxfoundation.org>
To: Changming Liu <charley.ashbringer@gmail.com>
Cc: linux-usb@vger.kernel.org, thomas@winischhofer.net
Subject: Re: [PATCH 1/4] USB: sisusbvga: change the char buffer from char to u8 for sisusb_write_mem_bulk and sisusb_send_bulk_msg
Date: Sat, 27 Jun 2020 13:28:28 +0200 [thread overview]
Message-ID: <20200627112828.GA1596272@kroah.com> (raw)
In-Reply-To: <1593200057-245-2-git-send-email-charley.ashbringer@gmail.com>
On Fri, Jun 26, 2020 at 03:34:14PM -0400, Changming Liu wrote:
> This patch changes the types of char buffer declarations
> as well as passed-in parameters to u8 for the function
> sisusb_write_mem_bulk and sisusb_send_bulk_msg to aviod
> any related UB.
>
> This patch also change the local buf[4] of sisusb_write_mem_bulk
> to u8. This fixed an undefined behavior, since buf can be filled
> with data from user space, thus can be negative given it's signed,
> and its content is being left-shifted. Left-shifting a negative
> value is undefined behavior. It's fixed by changing the buf from
> char to u8.
In looking at this closer, it doesn't make sense to change the function
parameters here, as everything that deals with the pointer already
handles the change properly.
>
> Signed-off-by: Changming Liu <charley.ashbringer@gmail.com>
> ---
> drivers/usb/misc/sisusbvga/sisusb.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/usb/misc/sisusbvga/sisusb.c b/drivers/usb/misc/sisusbvga/sisusb.c
> index fc8a5da..4aa717a 100644
> --- a/drivers/usb/misc/sisusbvga/sisusb.c
> +++ b/drivers/usb/misc/sisusbvga/sisusb.c
> @@ -327,7 +327,7 @@ static int sisusb_bulkin_msg(struct sisusb_usb_data *sisusb,
> */
>
> static int sisusb_send_bulk_msg(struct sisusb_usb_data *sisusb, int ep, int len,
> - char *kernbuffer, const char __user *userbuffer, int index,
> + u8 *kernbuffer, const u8 __user *userbuffer, int index,
So the kernbuffer pointer might want to be changed, but in looking at
the code, there's no difference here, it can be left alone.
The userbuffer does not need to be changed at all.
> static int sisusb_write_mem_bulk(struct sisusb_usb_data *sisusb, u32 addr,
> - char *kernbuffer, int length, const char __user *userbuffer,
> + u8 *kernbuffer, int length, const u8 __user *userbuffer,
Same here, these do not need to be changed.
> int index, ssize_t *bytes_written)
> {
> struct sisusb_packet packet;
> @@ -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];
That is what should be changed, and in looking at the code path, I think
that's it here.
Sorry for taking you down the wrong path, but I think you should only
change things that actually matter, and the above api changes don't
change anything at all, right?
thanks,
greg k-h
next prev parent reply other threads:[~2020-06-27 11:28 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-26 19:34 [PATCH 0/4] USB: sisusbvga: cleaning up char buffers to u8 buffer Changming Liu
2020-06-26 19:34 ` [PATCH 1/4] USB: sisusbvga: change the char buffer from char to u8 for sisusb_write_mem_bulk and sisusb_send_bulk_msg Changming Liu
2020-06-27 11:28 ` Greg KH [this message]
2020-07-10 5:23 ` charley.ashbringer
2020-06-26 19:34 ` [PATCH 2/4] USB: sisusbvga: change the buffer members in sisusb_usb_data from char to u8 Changming Liu
2020-06-27 11:29 ` Greg KH
2020-06-26 19:34 ` [PATCH 3/4] USB: sisusbvga: change the buffer in sisusb_recv_bulk_msg " Changming Liu
2020-06-27 11:30 ` Greg KH
2020-06-26 19:34 ` [PATCH 4/4] USB: sisusbvga: change the buffers in sisusb_read_mem_bulk " Changming Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200627112828.GA1596272@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=charley.ashbringer@gmail.com \
--cc=linux-usb@vger.kernel.org \
--cc=thomas@winischhofer.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).