From 94c899d7b7b84cd170d75e1fbb4e696cf3447c27 Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
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 b44d4db63..a99c2647c 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 13cf672ca..b5f1590ce 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 ae592fde5..639e4eee4 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.
   *
   *  <b>Targeted for This Release:</b>
-  *  - Simplify Mass Storage Host LowLevel SCSI demo
   *  - Finish Host Mode Class Drivers
   *      ( ) Audio
   *      (C) CDC
-- 
GitLab