Ver Fonte

fix #152, potential memory issue

hathach há 6 anos atrás
pai
commit
064adebbd0
1 ficheiros alterados com 2 adições e 1 exclusões
  1. 2 1
      src/device/usbd.c

+ 2 - 1
src/device/usbd.c

@@ -435,8 +435,9 @@ static bool process_control_request(uint8_t rhport, tusb_control_request_t const
     case TUSB_REQ_RCPT_INTERFACE:
     case TUSB_REQ_RCPT_INTERFACE:
     {
     {
       uint8_t const itf = tu_u16_low(p_request->wIndex);
       uint8_t const itf = tu_u16_low(p_request->wIndex);
-      uint8_t const drvid = _usbd_dev.itf2drv[itf];
+      TU_VERIFY(itf < TU_ARRAY_SZIE(_usbd_dev.itf2drv));
 
 
+      uint8_t const drvid = _usbd_dev.itf2drv[itf];
       TU_VERIFY(drvid < USBD_CLASS_DRIVER_COUNT);
       TU_VERIFY(drvid < USBD_CLASS_DRIVER_COUNT);
 
 
       if (p_request->bmRequestType_bit.type == TUSB_REQ_TYPE_STANDARD)
       if (p_request->bmRequestType_bit.type == TUSB_REQ_TYPE_STANDARD)