Author: janderwald Date: Sat Feb 28 09:48:16 2015 New Revision: 66483
URL: http://svn.reactos.org/svn/reactos?rev=66483&view=rev Log: [USBCCGP] - reset interface count before loop - add extra checks
Modified: trunk/reactos/drivers/usb/usbccgp/descriptor.c
Modified: trunk/reactos/drivers/usb/usbccgp/descriptor.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/usbccgp/descrip... ============================================================================== --- trunk/reactos/drivers/usb/usbccgp/descriptor.c [iso-8859-1] (original) +++ trunk/reactos/drivers/usb/usbccgp/descriptor.c [iso-8859-1] Sat Feb 28 09:48:16 2015 @@ -326,6 +326,11 @@ // count all interface descriptors // DescriptorCount = ConfigurationDescriptor->bNumInterfaces; + if (DescriptorCount == 0) + { + DPRINT1("[USBCCGP] DescriptorCount is zero\n"); + return STATUS_INVALID_PARAMETER; + }
// // allocate array holding the interface descriptors @@ -338,6 +343,11 @@ // return STATUS_INSUFFICIENT_RESOURCES; } + + // + // reset interface list count + // + FDODeviceExtension->InterfaceListCount = 0;
do { @@ -350,6 +360,7 @@ // // store in interface list // + ASSERT(FDODeviceExtension->InterfaceListCount < DescriptorCount); FDODeviceExtension->InterfaceList[FDODeviceExtension->InterfaceListCount].InterfaceDescriptor = InterfaceDescriptor; FDODeviceExtension->InterfaceListCount++; }