|
|
@@ -361,16 +361,10 @@ static int get_pipe(struct stub_device *sdev, struct usbip_header *pdu)
|
|
|
}
|
|
|
|
|
|
if (usb_endpoint_xfer_isoc(epd)) {
|
|
|
- /* validate packet size and number of packets */
|
|
|
- unsigned int maxp, packets, bytes;
|
|
|
-
|
|
|
- maxp = usb_endpoint_maxp(epd);
|
|
|
- maxp *= usb_endpoint_maxp_mult(epd);
|
|
|
- bytes = pdu->u.cmd_submit.transfer_buffer_length;
|
|
|
- packets = DIV_ROUND_UP(bytes, maxp);
|
|
|
-
|
|
|
+ /* validate number of packets */
|
|
|
if (pdu->u.cmd_submit.number_of_packets < 0 ||
|
|
|
- pdu->u.cmd_submit.number_of_packets > packets) {
|
|
|
+ pdu->u.cmd_submit.number_of_packets >
|
|
|
+ USBIP_MAX_ISO_PACKETS) {
|
|
|
dev_err(&sdev->udev->dev,
|
|
|
"CMD_SUBMIT: isoc invalid num packets %d\n",
|
|
|
pdu->u.cmd_submit.number_of_packets);
|