From 87a5024a5bba60ff940c56ed139790966a66bb28 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Mon, 9 Jun 2025 11:07:07 +0900 Subject: [PATCH] Linux: Allow AppImage file to start with "veracrypt" in any case --- src/Platform/Unix/Process.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/Platform/Unix/Process.cpp b/src/Platform/Unix/Process.cpp index 600c3747..bc8da5cc 100644 --- a/src/Platform/Unix/Process.cpp +++ b/src/Platform/Unix/Process.cpp @@ -280,16 +280,23 @@ namespace VeraCrypt if (appImageEnv && appDirEnv) { string appDirString = appDirEnv; - string appImageFileString = appImageEnv; - const string appImageMountPrefix1 = "/tmp/.mount_Veracr"; - const string appImageMountPrefix2 = "/tmp/.mount_VeraCr"; + const std::string appImageMountPrefix = "/tmp/.mount_"; + const std::string appImageMountSuffixPattern = "veracr"; // Lowercase for case-insensitive comparison if (!appDirString.empty() && executablePath.rfind(appDirString, 0) == 0 && - (appDirString.rfind(appImageMountPrefix1, 0) == 0 || appDirString.rfind(appImageMountPrefix2, 0) == 0)) + appDirString.rfind(appImageMountPrefix, 0) == 0) { - // All conditions met, this is the AppImage scenario. - return true; + // Ensure appDirString has enough room for appImageMountPrefix and appImageMountSuffixPattern + if (appDirString.length() > appImageMountPrefix.length() + appImageMountSuffixPattern.length()) + { + std::string actualSuffixPart = appDirString.substr(appImageMountPrefix.length(), appImageMountSuffixPattern.length()); + if (StringConverter::ToLower(actualSuffixPart) == appImageMountSuffixPattern) + { + // All conditions met, this is the AppImage scenario. + return true; + } + } } } return false;