summaryrefslogtreecommitdiff
path: root/extra/xfce4-session/xfce4-session-4.10.0-store-the-watch-function-id.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/xfce4-session/xfce4-session-4.10.0-store-the-watch-function-id.patch')
-rw-r--r--extra/xfce4-session/xfce4-session-4.10.0-store-the-watch-function-id.patch26
1 files changed, 26 insertions, 0 deletions
diff --git a/extra/xfce4-session/xfce4-session-4.10.0-store-the-watch-function-id.patch b/extra/xfce4-session/xfce4-session-4.10.0-store-the-watch-function-id.patch
new file mode 100644
index 000000000..1b86997ff
--- /dev/null
+++ b/extra/xfce4-session/xfce4-session-4.10.0-store-the-watch-function-id.patch
@@ -0,0 +1,26 @@
+From ab391138cacc62ab184a338e237c4430356b41f9 Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick@xfce.org>
+Date: Fri, 26 Apr 2013 18:05:10 +0000
+Subject: Store the watch function id to avoid possible double free (bug #9709).
+
+---
+diff --git a/xfce4-session/xfsm-startup.c b/xfce4-session/xfsm-startup.c
+index e43c53c..c621397 100644
+--- a/xfce4-session/xfsm-startup.c
++++ b/xfce4-session/xfsm-startup.c
+@@ -903,9 +903,10 @@ xfsm_startup_start_properties (XfsmProperties *properties,
+ child_watch_data = g_new0 (XfsmStartupData, 1);
+ child_watch_data->manager = g_object_ref (manager);
+ child_watch_data->properties = properties;
+- g_child_watch_add_full (G_PRIORITY_LOW, properties->pid,
+- xfsm_startup_child_watch, child_watch_data,
+- (GDestroyNotify) xfsm_startup_data_free);
++ child_watch_data->properties->child_watch_id =
++ g_child_watch_add_full (G_PRIORITY_LOW, properties->pid,
++ xfsm_startup_child_watch, child_watch_data,
++ (GDestroyNotify) xfsm_startup_data_free);
+
+ /* set a timeout -- client must register in a a certain amount of time
+ * or it's assumed to be broken/have issues. */
+--
+cgit v0.9.1