VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Setup/Setup.c
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2014-10-14 16:58:28 +0200
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2014-11-08 23:23:45 +0100
commit2fe23a3fa3e522951c1ee64c877d4256388f5363 (patch)
tree1e09058433fdbd8576b81e62cecbb1191bb76bc5 /src/Setup/Setup.c
parenteffb5c7c1e3df5e709e0fa95d7dadb0969855cf8 (diff)
downloadVeraCrypt-2fe23a3fa3e522951c1ee64c877d4256388f5363.tar.gz
VeraCrypt-2fe23a3fa3e522951c1ee64c877d4256388f5363.zip
Correctly support reinstalling the same version. Overwrite the bootloader if the same version detected.
Diffstat (limited to 'src/Setup/Setup.c')
-rw-r--r--src/Setup/Setup.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/Setup/Setup.c b/src/Setup/Setup.c
index ea315b56..4737724c 100644
--- a/src/Setup/Setup.c
+++ b/src/Setup/Setup.c
@@ -60,6 +60,7 @@ BOOL bDowngrade = FALSE;
BOOL SystemEncryptionUpdate = FALSE;
BOOL PortableMode = FALSE;
BOOL bRepairMode = FALSE;
+BOOL bReinstallMode = FALSE;
BOOL bChangeMode = FALSE;
BOOL bDevm = FALSE;
BOOL bPossiblyFirstTimeInstall = FALSE;
@@ -245,8 +246,9 @@ void DetermineUpgradeDowngradeStatus (BOOL bCloseDriverHandle, LONG *driverVersi
bResult = DeviceIoControl (hDriver, TC_IOCTL_LEGACY_GET_DRIVER_VERSION, NULL, 0, &driverVersion, sizeof (driverVersion), &dwResult, NULL);
- bUpgrade = (bResult && driverVersion < VERSION_NUM);
+ bUpgrade = (bResult && driverVersion <= VERSION_NUM);
bDowngrade = (bResult && driverVersion > VERSION_NUM);
+ bReinstallMode = (bResult && driverVersion == VERSION_NUM);
PortableMode = DeviceIoControl (hDriver, TC_IOCTL_GET_PORTABLE_MODE_STATUS, NULL, 0, NULL, 0, &dwResult, NULL);
@@ -1073,7 +1075,8 @@ BOOL UpgradeBootLoader (HWND hwndDlg)
try
{
BootEncryption bootEnc (hwndDlg);
- if (bootEnc.GetInstalledBootLoaderVersion() < VERSION_NUM)
+ uint64 bootLoaderVersion = bootEnc.GetInstalledBootLoaderVersion();
+ if ((bootLoaderVersion < VERSION_NUM) || (bReinstallMode && (bootLoaderVersion == VERSION_NUM)))
{
StatusMessage (hwndDlg, "INSTALLER_UPDATING_BOOT_LOADER");