projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Collapse configuration descriptor size retrieval and size testing into a single if...
[pub/USBasp.git]
/
Demos
/
Host
/
ClassDriver
/
MouseHost
/
MouseHost.c
diff --git
a/Demos/Host/ClassDriver/MouseHost/MouseHost.c
b/Demos/Host/ClassDriver/MouseHost/MouseHost.c
index
c2850cf
..
6913ec3
100644
(file)
--- a/
Demos/Host/ClassDriver/MouseHost/MouseHost.c
+++ b/
Demos/Host/ClassDriver/MouseHost/MouseHost.c
@@
-79,22
+79,15
@@
int main(void)
uint16_t ConfigDescriptorSize;
\r
uint8_t ConfigDescriptorData[512];
\r
\r
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
{
\r
- printf("Error Retrieving
Device
Descriptor.\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
}
\r
\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
- LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
\r
- USB_HostState = HOST_STATE_WaitForDeviceRemoval;
\r
- break;
\r
- }
\r
-
\r
USB_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData);
\r
\r
if (HID_Host_ConfigurePipes(&Mouse_HID_Interface,
\r
USB_GetDeviceConfigDescriptor(1, &ConfigDescriptorSize, ConfigDescriptorData);
\r
\r
if (HID_Host_ConfigurePipes(&Mouse_HID_Interface,
\r