assign-endpoints-checks.patch 713 B

1234567891011121314151617
  1. diff --git a/third_party/libusb/src/libusb/os/windows_usb.c b/third_party/libusb/src/libusb/os/windows_usb.c
  2. index 259897e..4469992 100644
  3. --- a/third_party/libusb/src/libusb/os/windows_usb.c
  4. +++ b/third_party/libusb/src/libusb/os/windows_usb.c
  5. @@ -663,6 +663,12 @@ static int windows_assign_endpoints(struct libusb_device_handle *dev_handle, int
  6. return r;
  7. }
  8. + if (iface >= conf_desc->bNumInterfaces ||
  9. + altsetting >= conf_desc->interface[iface].num_altsetting) {
  10. + usbi_dbg("interface %d, altsetting %d out of range", iface, altsetting);
  11. + return LIBUSB_ERROR_INVALID_PARAM;
  12. + }
  13. +
  14. if_desc = &conf_desc->interface[iface].altsetting[altsetting];
  15. safe_free(priv->usb_interface[iface].endpoint);