From 5c207cc611611d0773232aa0a2d631d12a428de1 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Sat, 27 Aug 2016 11:29:42 +0000 Subject: [PATCH] [USBHUB] - Fix memory leaks in failure case of CreateUsbChildDeviceObject. Patch by Vardan Mikayelyan, merged from r72366. svn path=/trunk/; revision=72471 --- reactos/drivers/usb/usbhub/fdo.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/reactos/drivers/usb/usbhub/fdo.c b/reactos/drivers/usb/usbhub/fdo.c index 95b2ad9406c..837a3a88bba 100644 --- a/reactos/drivers/usb/usbhub/fdo.c +++ b/reactos/drivers/usb/usbhub/fdo.c @@ -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 //