uint16_t ConfigDescriptorSize;\r
uint8_t ConfigDescriptorData[512];\r
\r
- if (USB_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, NULL) != HOST_SENDCONTROL_Successful)\r
+ if ((USB_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, NULL) != HOST_SENDCONTROL_Successful) ||\r
+ (ConfigDescriptorSize > sizeof(ConfigDescriptorData)))\r
{\r
- printf("Error Retrieving Device Descriptor.\r\n");\r
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
- USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
- break;\r
- }\r
- \r
- if (ConfigDescriptorSize > 512)\r
- {\r
- printf("Device Descriptor Too Large To Process.\r\n");\r
+ printf("Error Retrieving Configuration Descriptor.\r\n");\r
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
break;\r