Damjan Jovanovic : winemenubuilder: Ignore wine.desktop managed file types.
Alexandre Julliard
julliard at winehq.org
Wed Jun 3 09:31:13 CDT 2009
Module: wine
Branch: master
Commit: 77e0ee9013c0e97fa2cce2d6e4a43e2418a460a9
URL: http://source.winehq.org/git/wine.git/?a=commit;h=77e0ee9013c0e97fa2cce2d6e4a43e2418a460a9
Author: Damjan Jovanovic <damjan.jov at gmail.com>
Date: Tue Jun 2 19:15:58 2009 +0200
winemenubuilder: Ignore wine.desktop managed file types.
---
programs/winemenubuilder/winemenubuilder.c | 16 +++++++++++++++-
1 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c
index a86d207..462456a 100644
--- a/programs/winemenubuilder/winemenubuilder.c
+++ b/programs/winemenubuilder/winemenubuilder.c
@@ -1549,6 +1549,20 @@ static BOOL write_freedesktop_mime_type_entry(const char *packages_dir, const ch
return ret;
}
+static BOOL is_extension_blacklisted(LPCWSTR extension)
+{
+ /* These are managed through external tools like wine.desktop, to evade malware created file type associations */
+ static const WCHAR comW[] = {'.','c','o','m',0};
+ static const WCHAR exeW[] = {'.','e','x','e',0};
+ static const WCHAR msiW[] = {'.','m','s','i',0};
+
+ if (!strcmpiW(extension, comW) ||
+ !strcmpiW(extension, exeW) ||
+ !strcmpiW(extension, msiW))
+ return TRUE;
+ return FALSE;
+}
+
static BOOL generate_associations(const char *xdg_data_home, const char *packages_dir, const char *applications_dir)
{
struct list *nativeMimeTypes = NULL;
@@ -1581,7 +1595,7 @@ static BOOL generate_associations(const char *xdg_data_home, const char *package
size *= 2;
} while (ret == ERROR_MORE_DATA);
- if (ret == ERROR_SUCCESS && extensionW[0] == '.')
+ if (ret == ERROR_SUCCESS && extensionW[0] == '.' && !is_extension_blacklisted(extensionW))
{
char *extensionA = NULL;
WCHAR *commandW = NULL;
More information about the wine-cvs
mailing list