From 94c899d7b7b84cd170d75e1fbb4e696cf3447c27 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Thu, 27 Aug 2009 22:34:41 +0000 Subject: [PATCH] Fixed Device mode HID Class driver not explicitly initializing the ReportSize parameter to zero before calling callback routine, so that ignored callbacks don't cause incorrect data to be sent. --- LUFA/Drivers/USB/Class/Device/HID.c | 8 ++++---- LUFA/ManPages/ChangeLog.txt | 2 ++ LUFA/ManPages/FutureChanges.txt | 1 - 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/LUFA/Drivers/USB/Class/Device/HID.c b/LUFA/Drivers/USB/Class/Device/HID.c index b44d4db63c..a99c2647cc 100644 --- a/LUFA/Drivers/USB/Class/Device/HID.c +++ b/LUFA/Drivers/USB/Class/Device/HID.c @@ -48,8 +48,8 @@ void HID_Device_ProcessControlRequest(USB_ClassInfo_HID_Device_t* const HIDInter { Endpoint_ClearSETUP(); - uint16_t ReportINSize; - uint8_t ReportID = (USB_ControlRequest.wValue & 0xFF); + uint16_t ReportINSize = 0; + uint8_t ReportID = (USB_ControlRequest.wValue & 0xFF); memset(HIDInterfaceInfo->Config.PrevReportINBuffer, 0, HIDInterfaceInfo->Config.PrevReportINBufferSize); @@ -151,8 +151,8 @@ void HID_Device_USBTask(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo) if (Endpoint_IsReadWriteAllowed()) { uint8_t ReportINData[HIDInterfaceInfo->Config.PrevReportINBufferSize]; - uint8_t ReportID = 0; - uint16_t ReportINSize; + uint8_t ReportID = 0; + uint16_t ReportINSize = 0; memset(ReportINData, 0, sizeof(ReportINData)); diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 13cf672caf..b5f1590cec 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -43,6 +43,8 @@ * - Added hardware USART receive interrupt and software buffering to the Benito project to ensure received data is not * missed or corrupted * - Fixed Device mode HID Class driver always sending IN packets, even when nothing to report + * - Fixed Device mode HID Class driver not explicitly initializing the ReportSize parameter to zero before calling callback + * routine, so that ignored callbacks don't cause incorrect data to be sent * * * \section Sec_ChangeLog090810 Version 090810 diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt index ae592fde50..639e4eee4d 100644 --- a/LUFA/ManPages/FutureChanges.txt +++ b/LUFA/ManPages/FutureChanges.txt @@ -12,7 +12,6 @@ * or post your suggestion as an enhancement request to the project bug tracker. * * Targeted for This Release: - * - Simplify Mass Storage Host LowLevel SCSI demo * - Finish Host Mode Class Drivers * ( ) Audio * (C) CDC