From 516da2229d66232f8c6ad84f5fecbdfc8c8f9f67 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Sun, 8 Feb 2015 23:41:37 +0100 Subject: Static Code Analysis: in Windows Driver, avoid using uninitialized stack memory as random and use proper random value for wipe operation. Solve potential double-free issue. --- src/Driver/Ntvol.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/Driver/Ntvol.c') diff --git a/src/Driver/Ntvol.c b/src/Driver/Ntvol.c index 32702929..7556b4cf 100644 --- a/src/Driver/Ntvol.c +++ b/src/Driver/Ntvol.c @@ -726,7 +726,7 @@ error: void TCCloseVolume (PDEVICE_OBJECT DeviceObject, PEXTENSION Extension) { - if (DeviceObject); /* Remove compiler warning */ + UNREFERENCED_PARAMETER (DeviceObject); /* Remove compiler warning */ if (Extension->hDeviceFile != NULL) { @@ -738,7 +738,11 @@ void TCCloseVolume (PDEVICE_OBJECT DeviceObject, PEXTENSION Extension) ZwClose (Extension->hDeviceFile); } ObDereferenceObject (Extension->pfoDeviceFile); - crypto_close (Extension->cryptoInfo); + if (Extension->cryptoInfo) + { + crypto_close (Extension->cryptoInfo); + Extension->cryptoInfo = NULL; + } } @@ -752,7 +756,7 @@ NTSTATUS TCSendHostDeviceIoControlRequest (PDEVICE_OBJECT DeviceObject, NTSTATUS ntStatus; PIRP Irp; - if (DeviceObject); /* Remove compiler warning */ + UNREFERENCED_PARAMETER(DeviceObject); /* Remove compiler warning */ KeClearEvent (&Extension->keVolumeEvent); @@ -791,7 +795,7 @@ NTSTATUS COMPLETE_IRP (PDEVICE_OBJECT DeviceObject, Irp->IoStatus.Status = IrpStatus; Irp->IoStatus.Information = IrpInformation; - if (DeviceObject); /* Remove compiler warning */ + UNREFERENCED_PARAMETER (DeviceObject); /* Remove compiler warning */ #if EXTRA_INFO if (!NT_SUCCESS (IrpStatus)) -- cgit v1.2.3