7199N/AFrom ad177152bc5e75dcf4b04d60931a3723f3fba4df Mon Sep 17 00:00:00 2001
7199N/AFrom: Ray Strode <rstrode@redhat.com>
7199N/ADate: Wed, 22 Jun 2016 10:13:07 -0400
7199N/ASubject: [PATCH 01/19] fix shutdown crash
7199N/ABackport of upstream fix from
7199N/Alocal-display-factory: disconnect signal handlers when factory is disposed
7199N/AThere's the potential for a crash in the shutdown path after the
7199N/Afactory is disposed, since we fail to disconnect signal handlers to
7199N/Athe displays / display store at factory dispose time.
7199N/AThis commit changes the g_signal_connect to g_signal_connect_object, to
7199N/Aavoid any potential for crash.
7199N/A(this is a fix noticed when reading through the source. It's tangentially
7199N/Arelated to a discussion on irc for a different bug)
7199N/A 1 file changed, 15 insertions(+), 11 deletions(-)
7199N/A@@ -549,8 +549,10 @@ on_display_added (GdmDisplayStore *display_store,
7199N/A display = gdm_display_store_lookup (display_store, id);
7199N/A- g_signal_connect (display, "notify::status",
7199N/A- G_CALLBACK (on_display_status_changed), factory);
7199N/A+ g_signal_connect_object (display, "notify::status",
7199N/A+ G_CALLBACK (on_display_status_changed),
7199N/A g_object_weak_ref (G_OBJECT (display), (GWeakNotify)on_display_disposed, factory);
7199N/A@@ -582,15 +584,17 @@ gdm_local_display_factory_start (GdmDisplayFactory *base_factory)
7199N/A store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory));
7199N/A- g_signal_connect (G_OBJECT (store),
7199N/A- G_CALLBACK (on_display_added),
7199N/A- g_signal_connect (G_OBJECT (store),
7199N/A- G_CALLBACK (on_display_removed),
7199N/A+ g_signal_connect_object (G_OBJECT (store),
7199N/A+ G_CALLBACK (on_display_added),
7199N/A+ g_signal_connect_object (G_OBJECT (store),
7199N/A+ G_CALLBACK (on_display_removed),
7199N/A gdm_local_display_factory_start_monitor (factory);
7199N/A return gdm_local_display_factory_sync_seats (factory);