diff options
author | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2017-12-06 15:46:03 +0100 |
---|---|---|
committer | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2017-12-06 23:25:45 +0100 |
commit | d6f03627dd6830040b07c79953771024ca2ec95f (patch) | |
tree | ed3d0cec4533021fb9d0c1e399225b2b844cce34 | |
parent | b4ed8de5d565f9bb41361673e91c4ad65d08a7cd (diff) | |
download | VeraCrypt-d6f03627dd6830040b07c79953771024ca2ec95f.tar.gz VeraCrypt-d6f03627dd6830040b07c79953771024ca2ec95f.zip |
Linux/MacOSX: Avoid OS leaking previously used directory if user choose not to save history.
-rwxr-xr-x | src/Main/GraphicUserInterface.cpp | 14 |
1 files 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 <wstring, wstring> > &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) { |