|
@@ -596,7 +596,7 @@ static int cxacru_cm_get_array(struct cxacru_data *instance, enum cxacru_cm_requ
|
|
len = ret / 4;
|
|
len = ret / 4;
|
|
for (offb = 0; offb < len; ) {
|
|
for (offb = 0; offb < len; ) {
|
|
int l = le32_to_cpu(buf[offb++]);
|
|
int l = le32_to_cpu(buf[offb++]);
|
|
- if (l > stride || l > (len - offb) / 2) {
|
|
|
|
|
|
+ if (l < 0 || l > stride || l > (len - offb) / 2) {
|
|
if (printk_ratelimit())
|
|
if (printk_ratelimit())
|
|
usb_err(instance->usbatm, "invalid data length from cm %#x: %d\n",
|
|
usb_err(instance->usbatm, "invalid data length from cm %#x: %d\n",
|
|
cm, l);
|
|
cm, l);
|