[DISK]
authorThomas Faber <thomas.faber@reactos.org>
Sat, 19 Jul 2014 17:48:46 +0000 (17:48 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sat, 19 Jul 2014 17:48:46 +0000 (17:48 +0000)
- Fix memory leak in CreatePartitionDeviceObjects

svn path=/trunk/; revision=63721

reactos/drivers/storage/class/disk/disk.c

index fd3a475..5742852 100644 (file)
@@ -1183,7 +1183,7 @@ CreatePartitionDeviceObjects(
         // Allocate and zero a partition list.
         //
 
-        partitionList = ExAllocatePool(NonPagedPool, sizeof(*partitionList ));
+        partitionList = ExAllocatePool(NonPagedPool, sizeof(*partitionList));
 
 
         if (partitionList != NULL) {
@@ -1446,6 +1446,10 @@ CreatePartitionDeviceObjects(
 
         ExFreePool(partitionList);
 
+        if (dmSkew) {
+            ExFreePool(dmSkew);
+        }
+
     } else {
 
 CreatePartitionDeviceObjectsExit:
@@ -1457,6 +1461,10 @@ CreatePartitionDeviceObjectsExit:
             ExFreePool(initData);
         }
 
+        if (dmSkew) {
+            ExFreePool(dmSkew);
+        }
+
         return status;
 
     } // end if...else
@@ -1909,7 +1917,7 @@ Return Value:
                 case EXECUTE_OFFLINE_DIAGS:
                     controlCode = IOCTL_SCSI_MINIPORT_EXECUTE_OFFLINE_DIAGS;
                     break;
-      
+
           default:
                     status = STATUS_INVALID_PARAMETER;
                     break;
@@ -2090,13 +2098,13 @@ Return Value:
             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);
         }