diff options
author | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2015-02-08 23:41:37 +0100 |
---|---|---|
committer | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2015-02-09 11:01:16 +0100 |
commit | 516da2229d66232f8c6ad84f5fecbdfc8c8f9f67 (patch) | |
tree | 692199bfe2d61f553d738eccab77c6f0bf557e17 /src/Driver/Ntvol.c | |
parent | 28a9eaf0e3e516e61e7a0585e6b7c9e7465bd342 (diff) | |
download | VeraCrypt-516da2229d66232f8c6ad84f5fecbdfc8c8f9f67.tar.gz VeraCrypt-516da2229d66232f8c6ad84f5fecbdfc8c8f9f67.zip |
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.
Diffstat (limited to 'src/Driver/Ntvol.c')
-rw-r--r-- | src/Driver/Ntvol.c | 12 |
1 files changed, 8 insertions, 4 deletions
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))
|