// Allocate and zero a partition list.
//
- partitionList = ExAllocatePool(NonPagedPool, sizeof(*partitionList ));
+ partitionList = ExAllocatePool(NonPagedPool, sizeof(*partitionList));
if (partitionList != NULL) {
ExFreePool(partitionList);
+ if (dmSkew) {
+ ExFreePool(dmSkew);
+ }
+
} else {
CreatePartitionDeviceObjectsExit:
ExFreePool(initData);
}
+ if (dmSkew) {
+ ExFreePool(dmSkew);
+ }
+
return status;
} // end if...else
case EXECUTE_OFFLINE_DIAGS:
controlCode = IOCTL_SCSI_MINIPORT_EXECUTE_OFFLINE_DIAGS;
break;
-
+
default:
status = STATUS_INVALID_PARAMETER;
break;
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);
}