diff options
| author | hathach <[email protected]> | 2014-03-14 17:32:01 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2014-03-14 17:32:01 +0700 |
| commit | 18d577abfb3feb3c4eb2728661b6c508cdf37da0 (patch) | |
| tree | 619af818e0affd522aae6790fdc69f7417a08c6a | |
| parent | eff1fe99f82f2fcec61141a42d0154928e7c9e7f (diff) | |
fix out of range array in usbd
| -rw-r--r-- | tinyusb/device/usbd.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tinyusb/device/usbd.c b/tinyusb/device/usbd.c index 1bd8b7d7e..a42a4292f 100644 --- a/tinyusb/device/usbd.c +++ b/tinyusb/device/usbd.c @@ -276,7 +276,7 @@ tusb_error_t usbd_init (void) ASSERT_STATUS( osal_task_create( OSAL_TASK_REF(usbd_task) ));
//------------- class init -------------//
- for (tusb_std_class_code_t class_code = TUSB_CLASS_AUDIO; class_code <= TUSB_CLASS_AUDIO_VIDEO; class_code++)
+ for (uint8_t class_code = TUSB_CLASS_AUDIO; class_code < USBD_CLASS_DRIVER_COUNT; class_code++)
{
if ( usbd_class_drivers[class_code].init )
{
@@ -315,7 +315,7 @@ static tusb_error_t usbd_set_configure_received(uint8_t coreid, uint8_t config_n class_index = p_desc_interface->bInterfaceClass;
- ASSERT( class_index != 0 && usbd_class_drivers[class_index].open != NULL, TUSB_ERROR_NOT_SUPPORTED_YET );
+ ASSERT( class_index != 0 && class_index < USBD_CLASS_DRIVER_COUNT && usbd_class_drivers[class_index].open != NULL, TUSB_ERROR_NOT_SUPPORTED_YET );
ASSERT( 0 == usbd_devices[coreid].interface2class[p_desc_interface->bInterfaceNumber], TUSB_ERROR_FAILED); // duplicate interface number TODO alternate setting
usbd_devices[coreid].interface2class[p_desc_interface->bInterfaceNumber] = class_index;
@@ -375,7 +375,7 @@ void usbd_dcd_bus_event_isr(uint8_t coreid, usbd_bus_event_type_t bus_event) case USBD_BUS_EVENT_RESET :
case USBD_BUS_EVENT_UNPLUGGED :
memclr_(&usbd_devices[coreid], sizeof(usbd_device_info_t));
- for (tusb_std_class_code_t class_code = TUSB_CLASS_AUDIO; class_code <= TUSB_CLASS_AUDIO_VIDEO; class_code++)
+ for (uint8_t class_code = TUSB_CLASS_AUDIO; class_code < USBD_CLASS_DRIVER_COUNT; class_code++)
{
if ( usbd_class_drivers[class_code].close ) usbd_class_drivers[class_code].close( coreid );
}
|
