VeraCrypt
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2024-08-24 18:02:16 +0200
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2024-08-24 18:02:16 +0200
commit380ca35c6d34437380de252058bb68817c925810 (patch)
tree263661fac35adfeaf8bb51aa3260a6f21be12b07
parent25c88fe3d30c4df4aa8bf7c64b165f92886965b9 (diff)
downloadVeraCrypt-380ca35c6d34437380de252058bb68817c925810.tar.gz
VeraCrypt-380ca35c6d34437380de252058bb68817c925810.zip
Windows: Fix regression causing crash when a wrong password is used when changing password of volumes
-rw-r--r--src/Common/BootEncryption.cpp2
-rw-r--r--src/Common/Password.c2
-rw-r--r--src/ExpandVolume/ExpandVolume.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/src/Common/BootEncryption.cpp b/src/Common/BootEncryption.cpp
index 9fdcea29..fe0cdb09 100644
--- a/src/Common/BootEncryption.cpp
+++ b/src/Common/BootEncryption.cpp
@@ -5443,7 +5443,7 @@ namespace VeraCrypt
finally_do_arg (PCRYPTO_INFO, cryptoInfo, { if (finally_arg) crypto_close (finally_arg); });
// if the XTS master key is vulnerable, return error and do not allow the user to change the password since the master key will not be changed
- if (cryptoInfo->bVulnerableMasterKey)
+ if ((status == 0) && cryptoInfo->bVulnerableMasterKey)
status = ERR_SYSENC_XTS_MASTERKEY_VULNERABLE;
if (status != 0)
diff --git a/src/Common/Password.c b/src/Common/Password.c
index f20dd257..c0247207 100644
--- a/src/Common/Password.c
+++ b/src/Common/Password.c
@@ -372,7 +372,7 @@ int ChangePwd (const wchar_t *lpszVolume, Password *oldPassword, int old_pkcs5,
nStatus = 0; // We can ignore this error here
// if the XTS master key is vulnerable, return error and do not allow the user to change the password since the master key will not be changed
- if (cryptoInfo->bVulnerableMasterKey)
+ if ((nStatus == 0) && cryptoInfo->bVulnerableMasterKey)
nStatus = ERR_XTS_MASTERKEY_VULNERABLE;
if (nStatus == ERR_PASSWORD_WRONG)
diff --git a/src/ExpandVolume/ExpandVolume.c b/src/ExpandVolume/ExpandVolume.c
index f79fd5b7..34184dda 100644
--- a/src/ExpandVolume/ExpandVolume.c
+++ b/src/ExpandVolume/ExpandVolume.c
@@ -692,7 +692,7 @@ static int ExpandVolume (HWND hwndDlg, wchar_t *lpszVolume, Password *pVolumePas
nStatus = 0; // We can ignore this error here
// if the volume master key is vulnerable, print a warning to inform the user
- if (cryptoInfo->bVulnerableMasterKey)
+ if ((nStatus == 0) && cryptoInfo->bVulnerableMasterKey)
{
DebugAddProgressDlgStatus(hwndDlg, GetString ("ERR_XTS_MASTERKEY_VULNERABLE_SHORT"));
}