diff options
author | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2015-09-06 18:58:41 +0200 |
---|---|---|
committer | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2015-09-06 20:31:07 +0200 |
commit | 13bfb2db5952703de6759393fc96b8a0539da7a1 (patch) | |
tree | 66a63e91cf26372069c67f20bfe83071226d69bf | |
parent | e445863ae477b36ed2831591e3e414685aab2785 (diff) | |
download | VeraCrypt-13bfb2db5952703de6759393fc96b8a0539da7a1.tar.gz VeraCrypt-13bfb2db5952703de6759393fc96b8a0539da7a1.zip |
Windows: Installer and Traveler Disk Setup both always copy 32-bit and 64-bit executable binaries.
-rw-r--r-- | src/Mount/Mount.c | 37 | ||||
-rw-r--r-- | src/Setup/Setup.c | 30 | ||||
-rw-r--r-- | src/Setup/Setup.h | 6 |
3 files changed, 70 insertions, 3 deletions
diff --git a/src/Mount/Mount.c b/src/Mount/Mount.c index 8afc1094..cf157ad9 100644 --- a/src/Mount/Mount.c +++ b/src/Mount/Mount.c @@ -3932,8 +3932,11 @@ BOOL CALLBACK TravelerDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa StringCbPrintfA (dstPath, sizeof(dstPath), "%s\\VeraCrypt", dstDir);
CreateDirectory (dstPath, NULL);
- // Main app
- StringCbPrintfA (srcPath, sizeof(srcPath), "%s\\VeraCrypt.exe", appDir);
+ // Main app 32-bit
+ if (Is64BitOs ())
+ StringCbPrintfA (srcPath, sizeof(srcPath), "%s\\VeraCrypt-x86.exe", appDir);
+ else
+ StringCbPrintfA (srcPath, sizeof(srcPath), "%s\\VeraCrypt.exe", appDir);
StringCbPrintfA (dstPath, sizeof(dstPath), "%s\\VeraCrypt\\VeraCrypt.exe", dstDir);
if (!TCCopyFile (srcPath, dstPath))
{
@@ -3941,16 +3944,44 @@ BOOL CALLBACK TravelerDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPa goto stop;
}
+ // Main app 64-bit
+ if (Is64BitOs ())
+ StringCbPrintfA (srcPath, sizeof(srcPath), "%s\\VeraCrypt.exe", appDir);
+ else
+ StringCbPrintfA (srcPath, sizeof(srcPath), "%s\\VeraCrypt-x64.exe", appDir);
+ StringCbPrintfA (dstPath, sizeof(dstPath), "%s\\VeraCrypt\\VeraCrypt-x64.exe", dstDir);
+ if (!TCCopyFile (srcPath, dstPath))
+ {
+ handleWin32Error (hwndDlg, SRC_POS);
+ goto stop;
+ }
+
// Wizard
if (copyWizard)
{
- StringCbPrintfA (srcPath, sizeof(srcPath), "%s\\VeraCrypt Format.exe", appDir);
+ // Wizard 32-bit
+ if (Is64BitOs ())
+ StringCbPrintfA (srcPath, sizeof(srcPath), "%s\\VeraCrypt Format-x86.exe", appDir);
+ else
+ StringCbPrintfA (srcPath, sizeof(srcPath), "%s\\VeraCrypt Format.exe", appDir);
StringCbPrintfA (dstPath, sizeof(dstPath), "%s\\VeraCrypt\\VeraCrypt Format.exe", dstDir);
if (!TCCopyFile (srcPath, dstPath))
{
handleWin32Error (hwndDlg, SRC_POS);
goto stop;
}
+
+ // Wizard 64-bit
+ if (Is64BitOs ())
+ StringCbPrintfA (srcPath, sizeof(srcPath), "%s\\VeraCrypt Format.exe", appDir);
+ else
+ StringCbPrintfA (srcPath, sizeof(srcPath), "%s\\VeraCrypt Format-x64.exe", appDir);
+ StringCbPrintfA (dstPath, sizeof(dstPath), "%s\\VeraCrypt\\VeraCrypt Format-x64.exe", dstDir);
+ if (!TCCopyFile (srcPath, dstPath))
+ {
+ handleWin32Error (hwndDlg, SRC_POS);
+ goto stop;
+ }
}
// Driver
diff --git a/src/Setup/Setup.c b/src/Setup/Setup.c index 98b94b08..bd7a6ee4 100644 --- a/src/Setup/Setup.c +++ b/src/Setup/Setup.c @@ -641,6 +641,18 @@ BOOL DoFilesInstall (HWND hwndDlg, char *szDestDir) continue; // Destination = target
}
+ // skip files that don't apply to the current architecture
+ if ( (Is64BitOs () && (strcmp (szFiles[i], "AVeraCrypt-x64.exe") == 0))
+ || (Is64BitOs () && (strcmp (szFiles[i], "AVeraCryptExpander-x64.exe") == 0))
+ || (Is64BitOs () && (strcmp (szFiles[i], "AVeraCrypt Format-x64.exe") == 0))
+ || (!Is64BitOs () && (strcmp (szFiles[i], "AVeraCrypt-x86.exe") == 0))
+ || (!Is64BitOs () && (strcmp (szFiles[i], "AVeraCryptExpander-x86.exe") == 0))
+ || (!Is64BitOs () && (strcmp (szFiles[i], "AVeraCrypt Format-x86.exe") == 0))
+ )
+ {
+ continue;
+ }
+
if (*szFiles[i] == 'A')
StringCbCopyA (szDir, sizeof(szDir), szDestDir);
else if (*szFiles[i] == 'D')
@@ -700,17 +712,35 @@ BOOL DoFilesInstall (HWND hwndDlg, char *szDestDir) }
if (Is64BitOs ()
+ && strcmp (szFiles[i], "AVeraCrypt-x86.exe") == 0)
+ {
+ StringCbCopyNA (curFileName, sizeof(curFileName), "VeraCrypt.exe", sizeof ("VeraCrypt.exe"));
+ }
+
+ if (Is64BitOs ()
&& strcmp (szFiles[i], "AVeraCryptExpander.exe") == 0)
{
StringCbCopyNA (curFileName, sizeof(curFileName), "VeraCryptExpander-x64.exe", sizeof ("VeraCryptExpander-x64.exe"));
}
if (Is64BitOs ()
+ && strcmp (szFiles[i], "AVeraCryptExpander-x86.exe") == 0)
+ {
+ StringCbCopyNA (curFileName, sizeof(curFileName), "VeraCryptExpander.exe", sizeof ("VeraCryptExpander.exe"));
+ }
+
+ if (Is64BitOs ()
&& strcmp (szFiles[i], "AVeraCrypt Format.exe") == 0)
{
StringCbCopyNA (curFileName, sizeof(curFileName), "VeraCrypt Format-x64.exe", sizeof ("VeraCrypt Format-x64.exe"));
}
+ if (Is64BitOs ()
+ && strcmp (szFiles[i], "AVeraCrypt Format-x86.exe") == 0)
+ {
+ StringCbCopyNA (curFileName, sizeof(curFileName), "VeraCrypt Format.exe", sizeof ("VeraCrypt Format.exe"));
+ }
+
if (!bDevm)
{
bResult = FALSE;
diff --git a/src/Setup/Setup.h b/src/Setup/Setup.h index c7ccc293..99a60615 100644 --- a/src/Setup/Setup.h +++ b/src/Setup/Setup.h @@ -28,6 +28,12 @@ static char *szFiles[]= "AVeraCrypt.exe",
"AVeraCryptExpander.exe",
"AVeraCrypt Format.exe",
+ "AVeraCrypt-x86.exe",
+ "AVeraCryptExpander-x86.exe",
+ "AVeraCrypt Format-x86.exe",
+ "AVeraCrypt-x64.exe",
+ "AVeraCryptExpander-x64.exe",
+ "AVeraCrypt Format-x64.exe",
"Averacrypt.sys",
"Averacrypt-x64.sys",
"Dveracrypt.sys",
|