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
|