Author: tfaber
Date: Sat Jul 19 17:48:46 2014
New Revision: 63721

URL: http://svn.reactos.org/svn/reactos?rev=63721&view=rev
Log:
[DISK]
- Fix memory leak in CreatePartitionDeviceObjects

Modified:
    trunk/reactos/drivers/storage/class/disk/disk.c

Modified: trunk/reactos/drivers/storage/class/disk/disk.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/class/disk/disk.c?rev=63721&r1=63720&r2=63721&view=diff
==============================================================================
--- trunk/reactos/drivers/storage/class/disk/disk.c     [iso-8859-1] (original)
+++ trunk/reactos/drivers/storage/class/disk/disk.c     [iso-8859-1] Sat Jul 19 
17:48:46 2014
@@ -1183,7 +1183,7 @@
         // Allocate and zero a partition list.
         //
 
-        partitionList = ExAllocatePool(NonPagedPool, sizeof(*partitionList ));
+        partitionList = ExAllocatePool(NonPagedPool, sizeof(*partitionList));
 
 
         if (partitionList != NULL) {
@@ -1446,6 +1446,10 @@
 
         ExFreePool(partitionList);
 
+        if (dmSkew) {
+            ExFreePool(dmSkew);
+        }
+
     } else {
 
 CreatePartitionDeviceObjectsExit:
@@ -1455,6 +1459,10 @@
         }
         if (initData) {
             ExFreePool(initData);
+        }
+
+        if (dmSkew) {
+            ExFreePool(dmSkew);
         }
 
         return status;
@@ -1909,7 +1917,7 @@
                 case EXECUTE_OFFLINE_DIAGS:
                     controlCode = IOCTL_SCSI_MINIPORT_EXECUTE_OFFLINE_DIAGS;
                     break;
-      
+
           default:
                     status = STATUS_INVALID_PARAMETER;
                     break;
@@ -2090,13 +2098,13 @@
             RtlMoveMemory(Irp->AssociatedIrp.SystemBuffer,
                           deviceExtension->DiskGeometry,
                           (irpStack->Parameters.DeviceIoControl.IoControlCode 
== IOCTL_DISK_GET_DRIVE_GEOMETRY) ?
-                          sizeof(DISK_GEOMETRY) : 
+                          sizeof(DISK_GEOMETRY) :
                           sizeof(DISK_GEOMETRY_EX));
 
             status = STATUS_SUCCESS;
             Irp->IoStatus.Information =
                (irpStack->Parameters.DeviceIoControl.IoControlCode == 
IOCTL_DISK_GET_DRIVE_GEOMETRY) ?
-               sizeof(DISK_GEOMETRY) : 
+               sizeof(DISK_GEOMETRY) :
                sizeof(DISK_GEOMETRY_EX);
         }
 


Reply via email to