summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOndrej Holy <oholy@redhat.com>2016-11-03 14:49:20 +0100
committerOndrej Holy <oholy@redhat.com>2016-11-18 10:07:31 +0100
commitae33e475d0bbd717a9422790d8dc607469d2708d (patch)
tree8e17b90987eb10f29b709f8270fd57397a1ffdf7
parent3a5f04ce55ff6bcee7e6061f6f69bb11f658597b (diff)
downloadgvfs-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.c10
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);