VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2024-07-10 11:09:10 +0200
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2024-07-10 11:09:10 +0200
commit1312c537f5592d01c5195b9c17fcca97678bc5ad (patch)
treefa43c30e5a9970afe56bf99708c880f28bd2d162 /src
parent82b9eef880195c1163356a52ab57bdaa9a5897c5 (diff)
downloadVeraCrypt-1312c537f5592d01c5195b9c17fcca97678bc5ad.tar.gz
VeraCrypt-1312c537f5592d01c5195b9c17fcca97678bc5ad.zip
Linux: fix crash when displaying Admin password dialog. Fix failure of Github action by using builtin GITHUB_TOKEN
Diffstat (limited to 'src')
-rw-r--r--src/Main/GraphicUserInterface.cpp53
1 files changed, 26 insertions, 27 deletions
diff --git a/src/Main/GraphicUserInterface.cpp b/src/Main/GraphicUserInterface.cpp
index 0fd756a3..6a2ac9fe 100644
--- a/src/Main/GraphicUserInterface.cpp
+++ b/src/Main/GraphicUserInterface.cpp
@@ -37,33 +37,6 @@
namespace VeraCrypt
{
- class AdminPasswordRequestHandler : public GetStringFunctor
- {
- public:
- virtual void operator() (string &passwordStr)
- {
-
- wxString sValue;
- if (Gui->GetWaitDialog())
- {
- Gui->GetWaitDialog()->RequestAdminPassword(sValue);
- if (sValue.IsEmpty())
- throw UserAbort (SRC_POS);
- }
- else
- {
- wxPasswordEntryDialog dialog (Gui->GetActiveWindow(), LangString["LINUX_ADMIN_PW_QUERY"], LangString["LINUX_ADMIN_PW_QUERY_TITLE"]);
- if (dialog.ShowModal() != wxID_OK)
- throw UserAbort (SRC_POS);
- sValue = dialog.GetValue();
- }
- wstring wPassword (sValue); // A copy of the password is created here by wxWidgets, which cannot be erased
- finally_do_arg (wstring *, &wPassword, { StringConverter::Erase (*finally_arg); });
-
- StringConverter::ToSingle (wPassword, passwordStr);
- }
- };
-
#ifdef TC_MACOSX
int GraphicUserInterface::g_customIdCmdV = 0;
int GraphicUserInterface::g_customIdCmdA = 0;
@@ -479,6 +452,32 @@ namespace VeraCrypt
shared_ptr <GetStringFunctor> GraphicUserInterface::GetAdminPasswordRequestHandler ()
{
+ class AdminPasswordRequestHandler : public GetStringFunctor
+ {
+ public;
+ virtual void operator() (string &passwordStr)
+ {
+
+ wxString sValue;
+ if (Gui->GetWaitDialog())
+ {
+ Gui->GetWaitDialog()->RequestAdminPassword(sValue);
+ if (sValue.IsEmpty())
+ throw UserAbort (SRC_POS);
+ }
+ else
+ {
+ wxPasswordEntryDialog dialog (Gui->GetActiveWindow(), LangString["LINUX_ADMIN_PW_QUERY"], LangString["LINUX_ADMIN_PW_QUERY_TITLE"]);
+ if (dialog.ShowModal() != wxID_OK)
+ throw UserAbort (SRC_POS);
+ sValue = dialog.GetValue();
+ }
+ wstring wPassword (sValue); // A copy of the password is created here by wxWidgets, which cannot be erased
+ finally_do_arg (wstring *, &wPassword, { StringConverter::Erase (*finally_arg); });
+
+ StringConverter::ToSingle (wPassword, passwordStr);
+ }
+ };
return shared_ptr <GetStringFunctor> (new AdminPasswordRequestHandler);
}