Skip to content

Commit

Permalink
USB: keyspan: add a sanity test on "len"
Browse files Browse the repository at this point in the history
"len" comes from the USB transfer and it's probably correct.  The thing
is that we already have similar checks like:

        if (data[i] >= serial->num_ports) {

So adding a sanity test here matches the rest of the code and is a good
idea.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Dan Carpenter authored and Greg Kroah-Hartman committed Apr 5, 2013
1 parent 6a3ae84 commit 01a60e7
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions drivers/usb/serial/keyspan.c
Original file line number Diff line number Diff line change
Expand Up @@ -741,14 +741,15 @@ static void usa49wg_indat_callback(struct urb *urb)
if ((data[i] & 0x80) == 0) {
/* no error on any byte */
i++;
for (x = 1; x < len ; ++x)
for (x = 1; x < len && i < urb->actual_length; ++x)
tty_insert_flip_char(&port->port,
data[i++], 0);
} else {
/*
* some bytes had errors, every byte has status
*/
for (x = 0; x + 1 < len; x += 2) {
for (x = 0; x + 1 < len &&
i + 1 < urb->actual_length; x += 2) {
int stat = data[i], flag = 0;

if (stat & RXERROR_OVERRUN)
Expand Down

0 comments on commit 01a60e7

Please sign in to comment.