Linux/MacOSX:check that the requested size of file container is less than available

disk free space. Add a CLI switch to disable this check.
This commit is contained in:
Mounir IDRASSI 2019-10-02 22:28:22 +02:00
parent f16a298d9f
commit 400bb52247
No known key found for this signature in database
GPG Key ID: 02C30AE90FAE4A6F
4 changed files with 13 additions and 2 deletions

View File

@ -30,6 +30,7 @@ namespace VeraCrypt
ArgSize (0),
ArgVolumeType (VolumeType::Unknown),
ArgTrueCryptMode (false),
ArgDisableFileSizeCheck (false),
StartBackgroundTask (false)
{
wxCmdLineParser parser;
@ -96,6 +97,7 @@ namespace VeraCrypt
parser.AddOption (L"", L"volume-type", _("Volume type"));
parser.AddParam ( _("Volume path"), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL);
parser.AddParam ( _("Mount point"), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL);
parser.AddSwitch (L"", L"no-size-check", _("Disable check of container size against disk free space."));
wxString str;
bool param1IsVolume = false;
@ -331,6 +333,7 @@ namespace VeraCrypt
ArgForce = parser.Found (L"force");
ArgTrueCryptMode = parser.Found (L"truecrypt");
ArgDisableFileSizeCheck = parser.Found (L"no-size-check");
#if !defined(TC_WINDOWS) && !defined(TC_MACOSX)
if (parser.Found (L"fs-options", &str))

View File

@ -83,6 +83,7 @@ namespace VeraCrypt
VolumeType::Enum ArgVolumeType;
bool ArgTrueCryptMode;
shared_ptr<SecureBuffer> ArgTokenPin;
bool ArgDisableFileSizeCheck;
bool StartBackgroundTask;
UserPreferences Preferences;

View File

@ -21,7 +21,8 @@ namespace VeraCrypt
MaxVolumeSize (0),
MaxVolumeSizeValid (false),
MinVolumeSize (1),
SectorSize (sectorSize)
SectorSize (sectorSize),
AvailableDiskSpace (0)
{
VolumeSizePrefixChoice->Append (LangString["KB"], reinterpret_cast <void *> (1024));
VolumeSizePrefixChoice->Append (LangString["MB"], reinterpret_cast <void *> (1024 * 1024));
@ -34,6 +35,10 @@ namespace VeraCrypt
VolumeSizeTextCtrl->Disable();
VolumeSizeTextCtrl->SetValue (L"");
}
else
{
AvailableDiskSpace = (uint64) diskSpace.GetValue ();
}
FreeSpaceStaticText->SetFont (Gui->GetDefaultBoldFont (this));
@ -97,7 +102,8 @@ namespace VeraCrypt
{
try
{
if (GetVolumeSize() >= MinVolumeSize && (!MaxVolumeSizeValid || GetVolumeSize() <= MaxVolumeSize))
uint64 uiVolumeSize = GetVolumeSize();
if (uiVolumeSize >= MinVolumeSize && (!MaxVolumeSizeValid || uiVolumeSize <= MaxVolumeSize) && (CmdLine->ArgDisableFileSizeCheck || !AvailableDiskSpace || uiVolumeSize <= AvailableDiskSpace))
return true;
}
catch (...) { }

View File

@ -49,6 +49,7 @@ namespace VeraCrypt
bool MaxVolumeSizeValid;
uint64 MinVolumeSize;
uint32 SectorSize;
uint64 AvailableDiskSpace;
};
}