summaryrefslogtreecommitdiffstats
path: root/main/xfce4-session/store-the-watch-function-id-to-avoid-possible-double-free.patch
blob: 1b86997ff2f3a8253d3765400b169e2ab4a5923d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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