From bb0b761c6581604d71716e24bfdfed68b0093527 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Mon, 20 Jun 2011 01:57:22 +0000 Subject: [PATCH] Make the HID Report Parser Get/Set Report Item routines fail if a NULL pointer to a report item is given. Minor visual enhancement to the HIDReportViewer project. --- LUFA/Drivers/USB/Class/Common/HIDParser.c | 6 ++++++ Projects/HIDReportViewer/HIDReportViewer.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/LUFA/Drivers/USB/Class/Common/HIDParser.c b/LUFA/Drivers/USB/Class/Common/HIDParser.c index b90f89eb21..eb2f14c354 100644 --- a/LUFA/Drivers/USB/Class/Common/HIDParser.c +++ b/LUFA/Drivers/USB/Class/Common/HIDParser.c @@ -290,6 +290,9 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData, bool USB_GetHIDReportItemInfo(const uint8_t* ReportData, HID_ReportItem_t* const ReportItem) { + if (ReportItem == NULL) + return false; + uint16_t DataBitsRem = ReportItem->Attributes.BitSize; uint16_t CurrentBit = ReportItem->BitOffset; uint32_t BitMask = (1 << 0); @@ -320,6 +323,9 @@ bool USB_GetHIDReportItemInfo(const uint8_t* ReportData, void USB_SetHIDReportItemInfo(uint8_t* ReportData, HID_ReportItem_t* const ReportItem) { + if (ReportItem == NULL) + return; + uint16_t DataBitsRem = ReportItem->Attributes.BitSize; uint16_t CurrentBit = ReportItem->BitOffset; uint32_t BitMask = (1 << 0); diff --git a/Projects/HIDReportViewer/HIDReportViewer.c b/Projects/HIDReportViewer/HIDReportViewer.c index e01a38a7e6..58f9d5eaae 100644 --- a/Projects/HIDReportViewer/HIDReportViewer.c +++ b/Projects/HIDReportViewer/HIDReportViewer.c @@ -140,7 +140,7 @@ int main(void) ((ReportSizeFeatureBits >> 3) + ((ReportSizeFeatureBits & 0x07) != 0))); } - printf_P(PSTR("\r\n\r\nReport Items: %d\r\n"), HIDReportInfo.TotalDeviceReports); + puts_P(PSTR("\r\nReport Items:\r\n")); for (uint8_t ItemIndex = 0; ItemIndex < HIDReportInfo.TotalReportItems; ItemIndex++) { const HID_ReportItem_t* RItem = &HIDReportInfo.ReportItems[ItemIndex];