summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Terry <michael.terry@canonical.com>2011-09-29 17:57:32 +0200
committerTomas Bzatek <tbzatek@redhat.com>2011-09-29 17:58:25 +0200
commit98d2e292807cd59aaae267a0e6aecfb0a0689e1e (patch)
tree95cb820db28934f9190551497e90bb8897d5fbec
parent4bcca91a712a51f44eecd7de40faaae14318fcbe (diff)
downloadgvfs-98d2e292807cd59aaae267a0e6aecfb0a0689e1e.tar.gz
daemon: Grab a pointer to the GvfsBackend before unref'ing a job source, preventing a crash.
https://bugzilla.gnome.org/show_bug.cgi?id=654999
-rw-r--r--daemon/gvfsjobunmount.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/daemon/gvfsjobunmount.c b/daemon/gvfsjobunmount.c
index c4fadbca..d31b36e5 100644
--- a/daemon/gvfsjobunmount.c
+++ b/daemon/gvfsjobunmount.c
@@ -231,6 +231,7 @@ unregister_mount_callback (DBusMessage *unmount_reply,
gpointer user_data)
{
GVfsBackend *backend;
+ GVfsDaemon *daemon;
GVfsJobUnmount *op_job = G_VFS_JOB_UNMOUNT (user_data);
g_debug ("unregister_mount_callback, unmount_reply: %p, error: %p\n", unmount_reply, error);
@@ -239,9 +240,10 @@ unregister_mount_callback (DBusMessage *unmount_reply,
(*G_VFS_JOB_CLASS (g_vfs_job_unmount_parent_class)->send_reply) (G_VFS_JOB (op_job));
/* Unlink job source from daemon */
+ daemon = g_vfs_backend_get_daemon (backend);
g_vfs_job_source_closed (G_VFS_JOB_SOURCE (backend));
- g_vfs_daemon_close_active_channels (g_vfs_backend_get_daemon ((backend)));
+ g_vfs_daemon_close_active_channels (daemon);
}
/* Might be called on an i/o thread */