diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index 9a6450f796dc..aaa897e6ba29 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c @@ -1772,6 +1772,11 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod) } else if (!info->in || !info->out) status = usbnet_get_endpoints (dev, udev); else { + /*sanity checks */ + if (!usb_endpoint_is_bulk_in(&udev->cur_altsetting->endpoint[info->in].desc)) + goto out3; + if (!usb_endpoint_is_bulk_out(&udev->cur_altsetting->endpoint[info->out].desc)) + goto out3; dev->in = usb_rcvbulkpipe (xdev, info->in); dev->out = usb_sndbulkpipe (xdev, info->out); if (!(info->flags & FLAG_NO_SETINT))