|
@@ -1576,7 +1576,11 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb
|
|
|
totlen += isopkt[u].length;
|
|
|
}
|
|
|
u *= sizeof(struct usb_iso_packet_descriptor);
|
|
|
- uurb->buffer_length = totlen;
|
|
|
+ if (totlen <= uurb->buffer_length)
|
|
|
+ uurb->buffer_length = totlen;
|
|
|
+ else
|
|
|
+ WARN_ONCE(1, "uurb->buffer_length is too short %d vs %d",
|
|
|
+ totlen, uurb->buffer_length);
|
|
|
break;
|
|
|
|
|
|
default:
|