USB: cxacru: potential underflow in cxacru_cm_get_array()
authorDan Carpenter <dan.carpenter@oracle.com>
Sun, 19 May 2013 18:52:20 +0000 (21:52 +0300)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 30 May 2013 13:35:04 +0000 (14:35 +0100)
commit 2a0ebf80aa95cc758d4725f74a7016e992606a39 upstream.

The value of "offd" comes off the instance->rcv_buf[] and we used it as
the offset into an array.  The problem is that we check the upper bound
but not for negative values.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/usb/atm/cxacru.c

index a845f8b..9497171 100644 (file)
@@ -686,7 +686,8 @@ static int cxacru_cm_get_array(struct cxacru_data *instance, enum cxacru_cm_requ
 {
        int ret, len;
        __le32 *buf;
-       int offb, offd;
+       int offb;
+       unsigned int offd;
        const int stride = CMD_PACKET_SIZE / (4 * 2) - 1;
        int buflen =  ((size - 1) / stride + 1 + size * 2) * 4;