Make the HID Report Parser Get/Set Report Item routines fail if a NULL pointer to...
authorDean Camera <dean@fourwalledcubicle.com>
Mon, 20 Jun 2011 01:57:22 +0000 (01:57 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Mon, 20 Jun 2011 01:57:22 +0000 (01:57 +0000)
Minor visual enhancement to the HIDReportViewer project.

LUFA/Drivers/USB/Class/Common/HIDParser.c
Projects/HIDReportViewer/HIDReportViewer.c

index b90f89e..eb2f14c 100644 (file)
@@ -290,6 +290,9 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
 bool USB_GetHIDReportItemInfo(const uint8_t* ReportData,
                               HID_ReportItem_t* const ReportItem)
 {
 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);
        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)
 {
 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);
        uint16_t DataBitsRem  = ReportItem->Attributes.BitSize;
        uint16_t CurrentBit   = ReportItem->BitOffset;
        uint32_t BitMask      = (1 << 0);
index e01a38a..58f9d5e 100644 (file)
@@ -140,7 +140,7 @@ int main(void)
                                                         ((ReportSizeFeatureBits >> 3) + ((ReportSizeFeatureBits & 0x07) != 0)));\r
                                }\r
                                \r
                                                         ((ReportSizeFeatureBits >> 3) + ((ReportSizeFeatureBits & 0x07) != 0)));\r
                                }\r
                                \r
-                               printf_P(PSTR("\r\n\r\nReport Items: %d\r\n"), HIDReportInfo.TotalDeviceReports);\r
+                               puts_P(PSTR("\r\nReport Items:\r\n"));\r
                                for (uint8_t ItemIndex = 0; ItemIndex < HIDReportInfo.TotalReportItems; ItemIndex++)\r
                                {\r
                                        const HID_ReportItem_t* RItem = &HIDReportInfo.ReportItems[ItemIndex];\r
                                for (uint8_t ItemIndex = 0; ItemIndex < HIDReportInfo.TotalReportItems; ItemIndex++)\r
                                {\r
                                        const HID_ReportItem_t* RItem = &HIDReportInfo.ReportItems[ItemIndex];\r