diff options
author | Ondrej Holy <oholy@redhat.com> | 2016-11-03 14:49:20 +0100 |
---|---|---|
committer | Ondrej Holy <oholy@redhat.com> | 2016-11-18 10:07:31 +0100 |
commit | ae33e475d0bbd717a9422790d8dc607469d2708d (patch) | |
tree | 8e17b90987eb10f29b709f8270fd57397a1ffdf7 | |
parent | 3a5f04ce55ff6bcee7e6061f6f69bb11f658597b (diff) | |
download | gvfs-ae33e475d0bbd717a9422790d8dc607469d2708d.tar.gz |
network: Disconnect all signal handlers in finalize
Not all signal handlers has been removed in finalize by commit 45c4dcc.
Disconnect rest of the signal handlers in order to avoid potential
crashes...
https://bugzilla.gnome.org/show_bug.cgi?id=712235
-rw-r--r-- | daemon/gvfsbackendnetwork.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/daemon/gvfsbackendnetwork.c b/daemon/gvfsbackendnetwork.c index 92164e3f..bbda0bba 100644 --- a/daemon/gvfsbackendnetwork.c +++ b/daemon/gvfsbackendnetwork.c @@ -958,9 +958,15 @@ g_vfs_backend_network_finalize (GObject *object) g_object_unref (backend->workgroup_symbolic_icon); g_object_unref (backend->server_symbolic_icon); if (backend->smb_settings) - g_object_unref (backend->smb_settings); + { + g_signal_handlers_disconnect_by_func (backend->smb_settings, smb_settings_change_event_cb, backend); + g_clear_object (&backend->smb_settings); + } if (backend->dnssd_settings) - g_object_unref (backend->dnssd_settings); + { + g_signal_handlers_disconnect_by_func (backend->dnssd_settings, dnssd_settings_change_event_cb, backend); + g_clear_object (&backend->dnssd_settings); + } if (backend->dnssd_monitor) { g_signal_handlers_disconnect_by_func (backend->dnssd_monitor, notify_dnssd_local_changed, backend); |