summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOndrej Holy <oholy@redhat.com>2016-11-18 14:27:24 +0100
committerOndrej Holy <oholy@redhat.com>2016-11-18 14:27:24 +0100
commit5f7a36ad93ecc6c221f96320c7bf8520bd80fa4e (patch)
tree9d1f2529dbdf821731ac79f44912388f0a224bce
parentae33e475d0bbd717a9422790d8dc607469d2708d (diff)
downloadgvfs-5f7a36ad93ecc6c221f96320c7bf8520bd80fa4e.tar.gz
network: Fix crashes when finalize
SMB backend mount operation might be still running when finalize is called. Increase backend reference count when calling g_file_mount_enclosing_volume in order to be sure that finalize is called after the operation is done. https://bugzilla.gnome.org/show_bug.cgi?id=712235
-rw-r--r--daemon/gvfsbackendnetwork.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/daemon/gvfsbackendnetwork.c b/daemon/gvfsbackendnetwork.c
index bbda0bba..fc6cca47 100644
--- a/daemon/gvfsbackendnetwork.c
+++ b/daemon/gvfsbackendnetwork.c
@@ -528,6 +528,7 @@ mount_smb_done_cb (GObject *object,
g_object_unref (backend->mount_job);
}
g_mutex_unlock (&backend->smb_mount_lock);
+ g_object_unref (backend);
}
static void
@@ -551,7 +552,7 @@ remount_smb (GVfsBackendNetwork *backend, GVfsJobMount *job)
file = g_file_new_for_uri (workgroup);
g_file_mount_enclosing_volume (file, G_MOUNT_MOUNT_NONE,
- NULL, NULL, mount_smb_done_cb, backend);
+ NULL, NULL, mount_smb_done_cb, g_object_ref (backend));
g_free (workgroup);
g_object_unref (file);
}