summaryrefslogtreecommitdiff
path: root/daemon
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 /daemon
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
Diffstat (limited to 'daemon')
-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);