From a2001ac1ccf4d4919c8243fbc69aff0b68973d3f Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Tue, 11 Aug 2009 08:36:25 +0000 Subject: Fixed swapped paremeters in the HID state memory copy call while processing a HID PUSH item in the HID report parser. Fixed memory corruption HID report parser when too many COLLECTION or PUSH items were processed. Make RNDIS device class driver include the CDC device class driver header, so that it can inherrit the required CDC functional descriptor macro. Make HID host class driver include the HID report parser. --- LUFA/Drivers/USB/Class/Host/HID.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'LUFA/Drivers/USB/Class/Host/HID.c') diff --git a/LUFA/Drivers/USB/Class/Host/HID.c b/LUFA/Drivers/USB/Class/Host/HID.c index 3a4faffbd..a42f8afa3 100644 --- a/LUFA/Drivers/USB/Class/Host/HID.c +++ b/LUFA/Drivers/USB/Class/Host/HID.c @@ -127,11 +127,21 @@ void HID_Host_USBTask(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo) } -void HID_Host_IsReportReceived(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo) +bool HID_Host_IsReportReceived(USB_ClassInfo_HID_Host_t* HIDInterfaceInfo) { + bool ReportReceived; + + if ((USB_HostState != HOST_STATE_Configured) || !(HIDInterfaceInfo->State.Active)) + return false; + Pipe_SelectPipe(HIDInterfaceInfo->Config.DataINPipeNumber); + Pipe_Unfreeze(); + + ReportReceived = Pipe_IsReadWriteAllowed(); + + Pipe_Freeze(); - return Pipe_IsReadWriteAllowed(); + return ReportReceived; } #endif -- cgit v1.2.3