Linux/MacOSX/FreeBSD: When performing backup of volume header, automatically try to use embedded backup header if using the main header fails.

This commit is contained in:
Mounir IDRASSI 2018-08-08 19:31:25 +02:00
parent 1d37997d3b
commit 1b59879411
No known key found for this signature in database
GPG Key ID: DD0C382D5FCFB8FC
2 changed files with 70 additions and 2 deletions

View File

@ -208,7 +208,42 @@ namespace VeraCrypt
}
catch (PasswordException &e)
{
ShowWarning (e);
bool bFailed = true;
if (!options->UseBackupHeaders)
{
try
{
OpenVolumeThreadRoutine routine2(
options->Path,
options->PreserveTimestamps,
options->Password,
options->Pim,
options->Kdf,
false,
options->Keyfiles,
options->Protection,
options->ProtectionPassword,
options->ProtectionPim,
options->ProtectionKdf,
options->ProtectionKeyfiles,
true,
volumeType,
true
);
ExecuteWaitThreadRoutine (parent, &routine2);
volume = routine2.m_pVolume;
bFailed = false;
}
catch (...)
{
}
}
if (bFailed)
ShowWarning (e);
else
ShowWarning ("HEADER_DAMAGED_AUTO_USED_HEADER_BAK");
}
}

View File

@ -317,7 +317,40 @@ namespace VeraCrypt
}
catch (PasswordException &e)
{
ShowInfo (e);
bool bFailed = true;
if (!options->UseBackupHeaders)
{
try
{
volume = Core->OpenVolume (
options->Path,
options->PreserveTimestamps,
options->Password,
options->Pim,
kdf,
false,
options->Keyfiles,
options->Protection,
options->ProtectionPassword,
options->ProtectionPim,
options->ProtectionKdf,
options->ProtectionKeyfiles,
true,
volumeType,
true
);
bFailed = false;
}
catch (...)
{
}
}
if (bFailed)
ShowInfo (e);
else
ShowInfo ("HEADER_DAMAGED_AUTO_USED_HEADER_BAK");
}
}