[mate-desktop] 02/04: debian/patches: Add 0001_fix-pkexec-calls-in-desktop-launcher.patch. In mate-desktop-item.c: Add a child watch if "do not reap child" flag is set. This avoids double forking with desktop files that have "exec pkexec ..." inside. (Closes: #781246).
Mike Gabriel
sunweaver at debian.org
Mon Apr 6 08:31:54 UTC 2015
This is an automated email from the git hooks/post-receive script.
sunweaver pushed a commit to branch master
in repository mate-desktop.
commit e2c28f9a4369cc9a308c797d12c77f35ce9d351f
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date: Sat Mar 28 14:39:35 2015 +0100
debian/patches: Add 0001_fix-pkexec-calls-in-desktop-launcher.patch. In mate-desktop-item.c: Add a child watch if "do not reap child" flag is set. This avoids double forking with desktop files that have "exec pkexec ..." inside. (Closes: #781246).
---
...0001_fix-pkexec-calls-in-desktop-launcher.patch | 64 ++++++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 65 insertions(+)
diff --git a/debian/patches/0001_fix-pkexec-calls-in-desktop-launcher.patch b/debian/patches/0001_fix-pkexec-calls-in-desktop-launcher.patch
new file mode 100644
index 0000000..d7e456c
--- /dev/null
+++ b/debian/patches/0001_fix-pkexec-calls-in-desktop-launcher.patch
@@ -0,0 +1,64 @@
+From 1a779ce4a20e578e6e73789dbc75876838f2e012 Mon Sep 17 00:00:00 2001
+From: Monsta <monsta at inbox.ru>
+Date: Wed, 25 Mar 2015 15:21:34 +0300
+Subject: [PATCH] mate-desktop-item: add a child watch if "do not reap child"
+ flag set
+
+similar to https://git.gnome.org/browse/gnome-panel/commit/?id=76acc5b
+
+avoids double forking with desktop files that have "exec pkexec ..."
+inside.
+---
+ libmate-desktop/mate-desktop-item.c | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/libmate-desktop/mate-desktop-item.c b/libmate-desktop/mate-desktop-item.c
+index eb004d9..c0ee1da 100644
+--- a/libmate-desktop/mate-desktop-item.c
++++ b/libmate-desktop/mate-desktop-item.c
+@@ -1721,6 +1721,17 @@ make_environment_for_screen (GdkScreen *screen,
+ return retval;
+ }
+
++static void
++dummy_child_watch (GPid pid,
++ gint status,
++ gpointer user_data)
++{
++ /* Nothing, this is just to ensure we don't double fork
++ * and break pkexec:
++ * https://bugzilla.gnome.org/show_bug.cgi?id=675789
++ */
++}
++
+ static int
+ ditem_execute (const MateDesktopItem *item,
+ const char *exec,
+@@ -1749,6 +1760,7 @@ ditem_execute (const MateDesktopItem *item,
+ char *new_exec, *uris, *temp;
+ char *exec_locale;
+ int launched = 0;
++ GPid pid;
+ #ifdef HAVE_STARTUP_NOTIFICATION
+ GdkDisplay *gdkdisplay;
+ SnLauncherContext *sn_context;
+@@ -1957,14 +1969,17 @@ ditem_execute (const MateDesktopItem *item,
+ (do_not_reap_child ? G_SPAWN_DO_NOT_REAP_CHILD : 0) | G_SPAWN_SEARCH_PATH /* flags */,
+ NULL, /* child_setup_func */
+ NULL, /* child_setup_func_data */
+- &ret /* child_pid */,
++ (do_not_reap_child ? &pid : NULL) /* child_pid */,
+ error)) {
+ /* The error was set for us,
+ * we just can't launch this thingie */
+ ret = -1;
+ g_strfreev (real_argv);
+ break;
++ } else if (do_not_reap_child) {
++ g_child_watch_add (pid, dummy_child_watch, NULL);
+ }
++
+ launched ++;
+
+ g_strfreev (real_argv);
+
diff --git a/debian/patches/series b/debian/patches/series
index c97dc73..661b138 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
+0001_fix-pkexec-calls-in-desktop-launcher.patch
2001_omit-gfdl-licensed-user-guide.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mate/mate-desktop.git
More information about the pkg-mate-commits
mailing list