diff --git a/changelog b/changelog index 1b83606..aac2d85 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,12 @@ +---------------------------- + 0.4.4 (2015-12-08) +---------------------------- + +- Add hardening measures to prevent loading DLLs from the current working directory on Windows. (CVE-2015-8359) +- Fix CVE-2015-8378: Canceling XML export operation creates export as ".xml" +- Auto-type and global auto-type functionality for OS X +- Enable retina display on OS X + ---------------------------- 0.4.3 (2010-03-07) ---------------------------- @@ -217,4 +226,4 @@ -fixed problem with hex. key files -fixed problem with damaged file attachments after various entry operations -fixed segmentation fault when using new icons with higher index --fixed error when saving empty databases \ No newline at end of file +-fixed error when saving empty databases diff --git a/share/macx_bundle/Info.plist b/share/macx_bundle/Info.plist index a2e72d9..0c72ad9 100644 --- a/share/macx_bundle/Info.plist +++ b/share/macx_bundle/Info.plist @@ -20,7 +20,7 @@ APPL CFBundleGetInfoString - KeePassX 0.4.3 + KeePassX 0.4.4 CFBundleSignature kpsx @@ -29,10 +29,10 @@ KeePassX CFBundleVersion - 0.4.3 + 0.4.4 CFBundleShortVersionString - 0.4.3 + 0.4.4 CFBundleName KeePassX @@ -41,7 +41,7 @@ 6.0 CFBundleIdentifier - org.keepassx.keepassx + com.apple.application-bundle CFBundleDocumentTypes diff --git a/src/keepassx.h b/src/keepassx.h index dd56575..d5674bc 100644 --- a/src/keepassx.h +++ b/src/keepassx.h @@ -26,7 +26,7 @@ #define APP_CODE_NAME "keepassx" #define APP_SHORT_FUNC "Password Manager" #define APP_LONG_FUNC "Cross Platform Password Manager" -#define APP_VERSION "0.4.3" +#define APP_VERSION "0.4.4" #define BUILTIN_ICONS 69 diff --git a/src/lib/FileDialogs.cpp b/src/lib/FileDialogs.cpp index 463df1b..aea2341 100644 --- a/src/lib/FileDialogs.cpp +++ b/src/lib/FileDialogs.cpp @@ -120,6 +120,10 @@ QString QtStandardFileDialogs::saveFileDialog(QWidget* parent,QString title,QStr ShowOverwriteWarning ? (QFileDialog::Option)0 : QFileDialog::DontConfirmOverwrite); LastFilter=Filters.indexOf(SelectedFilter); + //Dont't add an extension to the result if no file has been selected + if (filepath.isEmpty()) + return filepath; + //Check whether the file has an extension which fits to the selected filter QFileInfo file(filepath); QString filename=file.fileName(); diff --git a/src/main.cpp b/src/main.cpp index c825647..08f6683 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -24,6 +24,9 @@ #if defined(Q_WS_X11) && defined(GLOBAL_AUTOTYPE) #include "Application_X11.h" #endif +#ifdef Q_WS_WIN + #include +#endif #include "plugins/interfaces/IFileDialog.h" #include "plugins/interfaces/IKdeInit.h" @@ -49,6 +52,12 @@ IIconTheme* IconLoader=NULL; int main(int argc, char **argv) { +#ifdef Q_WS_WIN + // Make sure Windows doesn't load DLLs from the current working directory + SetDllDirectoryA(""); + SetSearchPathMode(BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE); +#endif + setlocale(LC_CTYPE, ""); #if defined(Q_WS_X11) && defined(AUTOTYPE)