You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.8 KiB
84 lines
2.8 KiB
From 6a62f4a28cc1457f489329ec115828d48db6c511 Mon Sep 17 00:00:00 2001 |
|
From: Ondrej Holy <oholy@redhat.com> |
|
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 <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; |
|
|
|
-- |
|
2.15.0 |
|
|
|
|