From 6a62f4a28cc1457f489329ec115828d48db6c511 Mon Sep 17 00:00:00 2001 From: Ondrej Holy Date: Wed, 25 Jan 2017 15:14:52 +0100 Subject: [PATCH 2/2] client: Propagate error from create_mount_tracker_proxy Prevent GDaemonFile methods failures without error being set. https://bugzilla.gnome.org/show_bug.cgi?id=777737 --- client/gdaemonvfs.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/client/gdaemonvfs.c b/client/gdaemonvfs.c index 0cf11e6d..632538a1 100644 --- a/client/gdaemonvfs.c +++ b/client/gdaemonvfs.c @@ -41,6 +41,7 @@ #include #include #include "gvfsutils.h" +#include "gvfsdaemondbus.h" typedef struct { char *type; @@ -562,23 +563,23 @@ find_string (GPtrArray *array, const char *find_me) } static GVfsDBusMountTracker * -create_mount_tracker_proxy () +create_mount_tracker_proxy (GError **error) { GVfsDBusMountTracker *proxy; - GError *error; + GError *local_error; - error = NULL; + local_error = NULL; proxy = gvfs_dbus_mount_tracker_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS | G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, G_VFS_DBUS_DAEMON_NAME, G_VFS_DBUS_MOUNTTRACKER_PATH, NULL, - &error); + &local_error); if (proxy == NULL) { g_warning ("Error creating proxy: %s (%s, %d)\n", - error->message, g_quark_to_string (error->domain), error->code); - g_error_free (error); + local_error->message, g_quark_to_string (local_error->domain), local_error->code); + _g_propagate_error_stripped (error, local_error); } return proxy; @@ -599,7 +600,7 @@ fill_mountable_info (GDaemonVfs *vfs) gint32 default_port; gboolean host_is_inet; - proxy = create_mount_tracker_proxy (); + proxy = create_mount_tracker_proxy (NULL); if (proxy == NULL) return; @@ -948,7 +949,7 @@ _g_daemon_vfs_get_mount_info_sync (GMountSpec *spec, if (info != NULL) return info; - proxy = create_mount_tracker_proxy (); + proxy = create_mount_tracker_proxy (error); if (proxy == NULL) return NULL; @@ -980,7 +981,7 @@ _g_daemon_vfs_get_mount_info_by_fuse_sync (const char *fuse_path, info = lookup_mount_info_by_fuse_path_in_cache (fuse_path); if (!info) { - proxy = create_mount_tracker_proxy (); + proxy = create_mount_tracker_proxy (NULL); if (proxy == NULL) return NULL; -- 2.15.0