Index: sys/dev/usb/usbdi.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/usbdi.c,v retrieving revision 1.238 diff -u -r1.238 usbdi.c --- sys/dev/usb/usbdi.c 13 Mar 2022 13:07:39 -0000 1.238 +++ sys/dev/usb/usbdi.c 17 Mar 2022 13:26:59 -0000 @@ -978,10 +978,11 @@ for (n = 0; end - p >= sizeof(*d); p += d->bLength) { d = (usb_interface_descriptor_t *)p; - if (d->bLength < sizeof(*d) || d->bLength > end - p) + if (d->bDescriptorType != UDESC_INTERFACE) + continue; + if (d->bLength > sizeof(*d) || d->bLength > end - p) break; - if (d->bDescriptorType == UDESC_INTERFACE && - d->bInterfaceNumber == ifaceno) + if (d->bInterfaceNumber == ifaceno) n++; } return n;