From dd8c3ef3a005613b5a28dd084bdae54dffa203fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= Date: Mon, 21 Sep 2015 14:30:02 +0200 Subject: [PATCH] manager: disconnect signal handlers on 'settings' in dispose() (rh #1264676) Otherwise a crash can occur when shutting down. https://bugzilla.redhat.com/show_bug.cgi?id=1264676 --- src/nm-manager.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/nm-manager.c b/src/nm-manager.c index 963ccd85ca..148ccf7ba7 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -5183,7 +5183,16 @@ dispose (GObject *object) g_clear_object (&priv->policy); } - g_clear_object (&priv->settings); + if (priv->settings) { + g_signal_handlers_disconnect_by_func (priv->settings, settings_startup_complete_changed, manager); + g_signal_handlers_disconnect_by_func (priv->settings, system_unmanaged_devices_changed_cb, manager); + g_signal_handlers_disconnect_by_func (priv->settings, system_hostname_changed_cb, manager); + g_signal_handlers_disconnect_by_func (priv->settings, connection_added, manager); + g_signal_handlers_disconnect_by_func (priv->settings, connection_changed, manager); + g_signal_handlers_disconnect_by_func (priv->settings, connection_removed, manager); + g_clear_object (&priv->settings); + } + g_free (priv->state_file); g_clear_object (&priv->vpn_manager);