- Fix memory leaks in failure case of CreateUsbChildDeviceObject. Patch by Vardan Mikayelyan, merged from r72366.

svn path=/trunk/; revision=72471
This commit is contained in:
Thomas Faber 2016-08-27 11:29:42 +00:00
parent c064e95689
commit 5c207cc611

View file

@ -1359,6 +1359,21 @@ Cleanup:
if (UsbChildExtension->FullConfigDesc)
ExFreePool(UsbChildExtension->FullConfigDesc);
//
// Free ID buffers if they were allocated in CreateDeviceIds()
//
if (UsbChildExtension->usCompatibleIds.Buffer)
ExFreePool(UsbChildExtension->usCompatibleIds.Buffer);
if (UsbChildExtension->usDeviceId.Buffer)
ExFreePool(UsbChildExtension->usDeviceId.Buffer);
if (UsbChildExtension->usHardwareIds.Buffer)
ExFreePool(UsbChildExtension->usHardwareIds.Buffer);
if (UsbChildExtension->usInstanceId.Buffer)
ExFreePool(UsbChildExtension->usInstanceId.Buffer);
//
// Delete the device object
//