From 65500305404a6100b50161343637c115e5718c9e Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Mon, 2 Mar 2020 17:44:12 +0100 Subject: Windows: Fix keyfiles path passed as CLI argument and set as default not always cleared from RAM when VeraCrypt exits --- src/Common/Dlgcode.c | 4 +++- src/Mount/Mount.c | 9 ++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Common/Dlgcode.c b/src/Common/Dlgcode.c index 5a2ed526..244a82b1 100644 --- a/src/Common/Dlgcode.c +++ b/src/Common/Dlgcode.c @@ -179,7 +179,7 @@ BOOL bInPlaceEncNonSysPending = FALSE; // TRUE if the non-system in-place encry BOOL PimEnable = FALSE; BOOL KeyFilesEnable = FALSE; KeyFile *FirstKeyFile = NULL; -KeyFilesDlgParam defaultKeyFilesParam; +KeyFilesDlgParam defaultKeyFilesParam = {0}; BOOL IgnoreWmDeviceChange = FALSE; BOOL DeviceChangeBroadcastDisabled = FALSE; @@ -487,6 +487,8 @@ void FinalizeGlobalLocks () void cleanup () { burn (&CmdTokenPin, sizeof (CmdTokenPin)); + KeyFileRemoveAll (&FirstKeyFile); + KeyFileRemoveAll (&defaultKeyFilesParam.FirstKeyFile); /* Cleanup the GDI fonts */ if (hFixedFont != NULL) diff --git a/src/Mount/Mount.c b/src/Mount/Mount.c index ca322280..6b491c55 100644 --- a/src/Mount/Mount.c +++ b/src/Mount/Mount.c @@ -158,14 +158,14 @@ MountOptions CmdMountOptions; BOOL CmdMountOptionsValid = FALSE; MountOptions mountOptions; MountOptions defaultMountOptions; -KeyFile *FirstCmdKeyFile; +KeyFile *FirstCmdKeyFile = NULL; HBITMAP hbmLogoBitmapRescaled = NULL; wchar_t OrigKeyboardLayout [8+1] = L"00000409"; BOOL bKeyboardLayoutChanged = FALSE; /* TRUE if the keyboard layout was changed to the standard US keyboard layout (from any other layout). */ BOOL bKeybLayoutAltKeyWarningShown = FALSE; /* TRUE if the user has been informed that it is not possible to type characters by pressing keys while the right Alt key is held down. */ -static KeyFilesDlgParam hidVolProtKeyFilesParam; +static KeyFilesDlgParam hidVolProtKeyFilesParam = {0}; static MOUNT_LIST_STRUCT LastKnownMountList = {0}; VOLUME_NOTIFICATIONS_LIST VolumeNotificationsList; @@ -377,6 +377,9 @@ static void localcleanup (void) burn (&defaultMountOptions, sizeof (defaultMountOptions)); burn (szFileName, sizeof(szFileName)); + KeyFileRemoveAll (&FirstCmdKeyFile); + KeyFileRemoveAll (&hidVolProtKeyFilesParam.FirstKeyFile); + /* Cleanup common code resources */ cleanup (); @@ -7034,7 +7037,7 @@ BOOL CALLBACK MainDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa if (FirstCmdKeyFile) { KeyFileRemoveAll (&FirstKeyFile); - FirstKeyFile = FirstCmdKeyFile; + KeyFileCloneAll (FirstCmdKeyFile, &FirstKeyFile); KeyFilesEnable = TRUE; } -- cgit v1.2.3