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)