From d6f03627dd6830040b07c79953771024ca2ec95f Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Wed, 6 Dec 2017 15:46:03 +0100 Subject: [PATCH] Linux/MacOSX: Avoid OS leaking previously used directory if user choose not to save history. --- src/Main/GraphicUserInterface.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Main/GraphicUserInterface.cpp b/src/Main/GraphicUserInterface.cpp index a6d1ae2d..ba5f6840 100755 --- a/src/Main/GraphicUserInterface.cpp +++ b/src/Main/GraphicUserInterface.cpp @@ -1569,13 +1569,18 @@ namespace VeraCrypt DirectoryPath GraphicUserInterface::SelectDirectory (wxWindow *parent, const wxString &message, bool existingOnly) const { + /* Avoid OS leaking previously used directory when user choose not to save history */ + wxString defaultPath; + if (!GetPreferences().SaveHistory) + defaultPath = wxGetHomeDir (); + return DirectoryPath (::wxDirSelector (!message.empty() ? message : #ifdef __WXGTK__ wxDirSelectorPromptStr, #else L"", #endif - L"", wxDD_DEFAULT_STYLE | (existingOnly ? wxDD_DIR_MUST_EXIST : 0), wxDefaultPosition, parent).wc_str()); + defaultPath, wxDD_DEFAULT_STYLE | (existingOnly ? wxDD_DIR_MUST_EXIST : 0), wxDefaultPosition, parent).wc_str()); } FilePathList GraphicUserInterface::SelectFiles (wxWindow *parent, const wxString &caption, bool saveMode, bool allowMultiple, const list < pair > &fileExtensions, const DirectoryPath &directory) const @@ -1614,7 +1619,12 @@ namespace VeraCrypt } } - wxFileDialog dialog (parent, !caption.empty() ? caption : LangString ["OPEN_TITLE"], wstring (directory), wxString(), wildcards, style); + /* Avoid OS leaking previously used directory when user choose not to save history */ + wxString defaultDir = wstring (directory); + if (defaultDir.IsEmpty () && !GetPreferences().SaveHistory) + defaultDir = wxGetHomeDir (); + + wxFileDialog dialog (parent, !caption.empty() ? caption : LangString ["OPEN_TITLE"], defaultDir, wxString(), wildcards, style); if (dialog.ShowModal() == wxID_OK) {