From 688b2e0ed2fb614c90c7fb0a942c5c3ef8714fa8 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 28 Nov 2008 07:27:13 +0000 Subject: [PATCH] Only allow deleting files that have been created by * gdesktopappinfo.c (g_app_info_can_delete): Only allow deleting files that have been created by g_app_info_create_from_commandline. svn path=/trunk/; revision=7693 --- gio/ChangeLog | 5 +++++ gio/gdesktopappinfo.c | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gio/ChangeLog b/gio/ChangeLog index 03a8f82..b4a408e 100644 --- a/gio/ChangeLog +++ b/gio/ChangeLog @@ -1,5 +1,10 @@ 2008-11-28 Matthias Clasen + * gdesktopappinfo.c (g_app_info_can_delete): Only allow deleting + files that have been created by g_app_info_create_from_commandline. + +2008-11-28 Matthias Clasen + Bug 541715 – win32 : patch for warnings and signature problems in recent code diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index dbf3867..ec85744 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -1532,8 +1532,8 @@ g_desktop_app_info_remove_supports_type (GAppInfo *appinfo, } static gboolean -g_desktop_app_info_ensure_saved (GDesktopAppInfo *info, - GError **error) +g_desktop_app_info_ensure_saved (GDesktopAppInfo *info, + GError **error) { GKeyFile *key_file; char *dirname; @@ -1628,7 +1628,10 @@ g_desktop_app_info_can_delete (GAppInfo *appinfo) GDesktopAppInfo *info = G_DESKTOP_APP_INFO (appinfo); if (info->filename) - return g_access (info->filename, W_OK) == 0; + { + if (strstr (info->filename, "/userapp-")) + return g_access (info->filename, W_OK) == 0; + } return FALSE; } -- 2.7.4