diff options
author | Ondrej Holy <oholy@redhat.com> | 2017-01-25 15:14:52 +0100 |
---|---|---|
committer | Ondrej Holy <oholy@redhat.com> | 2017-01-26 10:04:38 +0100 |
commit | 6a62f4a28cc1457f489329ec115828d48db6c511 (patch) | |
tree | c1ca974522f3eca1e7b83496cf31dda52575521d /client | |
parent | d659151a1f8b74fc9fc82689d6710f876a6ba5db (diff) | |
download | gvfs-6a62f4a28cc1457f489329ec115828d48db6c511.tar.gz |
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
Diffstat (limited to 'client')
-rw-r--r-- | client/gdaemonvfs.c | 19 |
1 files 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 <glib/gstdio.h> #include <gvfsdbus.h> #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; |