Linux: Fix wrong max size for hidden volume in CLI direct mode creation

There was a logical bug that made the code check the filesystem size of
the device path "/dev" instead of using the actual size of the device

Fix #1180
This commit is contained in:
Mounir IDRASSI 2023-08-19 20:44:32 +02:00
parent ed70b673d5
commit 9d8afdad93
No known key found for this signature in database
GPG Key ID: FC1B00364B3FE937
1 changed files with 15 additions and 8 deletions

View File

@ -656,17 +656,24 @@ namespace VeraCrypt
else
{
uint64 AvailableDiskSpace = 0;
wxLongLong diskSpace = 0;
wxString parentDir = wxFileName (wstring (options->Path)).GetPath();
if (parentDir.IsEmpty())
if (options->Path.IsDevice())
{
parentDir = wxT(".");
AvailableDiskSpace = maxVolumeSize;
}
if (wxDirExists(parentDir) && wxGetDiskSpace (parentDir, nullptr, &diskSpace))
else
{
AvailableDiskSpace = (uint64) diskSpace.GetValue ();
if (maxVolumeSize > AvailableDiskSpace)
maxVolumeSize = AvailableDiskSpace;
wxLongLong diskSpace = 0;
wxString parentDir = wxFileName (wstring (options->Path)).GetPath();
if (parentDir.IsEmpty())
{
parentDir = wxT(".");
}
if (wxDirExists(parentDir) && wxGetDiskSpace (parentDir, nullptr, &diskSpace))
{
AvailableDiskSpace = (uint64) diskSpace.GetValue ();
if (maxVolumeSize > AvailableDiskSpace)
maxVolumeSize = AvailableDiskSpace;
}
}
if (options->Size == (uint64) (-1))