- #if defined(USE_NONSTANDARD_DESCRIPTOR_NAMES)\r
- *ConfigSizePtr = DESCRIPTOR_CAST(ConfigHeader, USB_Descriptor_Configuration_Header_t).TotalConfigurationSize;\r
- #else\r
- *ConfigSizePtr = DESCRIPTOR_CAST(ConfigHeader, USB_Descriptor_Configuration_Header_t).wTotalLength; \r
- #endif\r
- }\r
- else\r
- {\r
- USB_ControlRequest.wLength = *ConfigSizePtr;\r
- \r
- ErrorCode = USB_Host_SendControlRequest(BufferPtr); \r
- }\r
+ if (*ConfigSizePtr > BufferSize)\r
+ return HOST_GETCONFIG_BuffOverflow;\r
+ \r
+ USB_ControlRequest.wLength = *ConfigSizePtr;\r
+ \r
+ if ((ErrorCode = USB_Host_SendControlRequest(BufferPtr)) != HOST_SENDCONTROL_Successful)\r
+ return ErrorCode;\r