-               #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