diff options
author | Nick Schermer <nick@xfce.org> | 2013-04-26 20:05:10 +0200 |
---|---|---|
committer | Nick Schermer <nick@xfce.org> | 2013-05-05 17:00:25 +0200 |
commit | 3ed422cb352b65bc7c4ff6d68b1ed89bd278464f (patch) | |
tree | fd48e7cd4b560f907619cdb33b260bd5483a45bb | |
parent | 801e7ee5458a0037cb6a7a548eeec73a74330db4 (diff) | |
download | xfce4-session-3ed422cb352b65bc7c4ff6d68b1ed89bd278464f.tar.gz |
Store the watch function id to avoid possible double free (bug #9709).
(cherry picked from commit ab391138cacc62ab184a338e237c4430356b41f9)
-rw-r--r-- | xfce4-session/xfsm-startup.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/xfce4-session/xfsm-startup.c b/xfce4-session/xfsm-startup.c index e43c53cd..c621397a 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. */ |