summaryrefslogtreecommitdiff
path: root/client/gdaemonfile.c
diff options
context:
space:
mode:
Diffstat (limited to 'client/gdaemonfile.c')
-rw-r--r--client/gdaemonfile.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/client/gdaemonfile.c b/client/gdaemonfile.c
index e97c9a4e..53e5f9a0 100644
--- a/client/gdaemonfile.c
+++ b/client/gdaemonfile.c
@@ -830,12 +830,16 @@ add_metadata (GFile *file,
tree = meta_tree_lookup_by_name (treename, FALSE);
g_free (treename);
- g_file_info_set_attribute_mask (info, matcher);
- meta_tree_enumerate_keys (tree, daemon_file->path,
- enumerate_keys_callback, info);
- g_file_info_unset_attribute_mask (info);
+ if (tree)
+ {
+ g_file_info_set_attribute_mask (info, matcher);
+ meta_tree_enumerate_keys (tree, daemon_file->path,
+ enumerate_keys_callback, info);
+ g_file_info_unset_attribute_mask (info);
+
+ meta_tree_unref (tree);
+ }
- meta_tree_unref (tree);
g_file_attribute_matcher_unref (matcher);
}
@@ -2649,6 +2653,14 @@ set_metadata_attribute (GFile *file,
tree = meta_tree_lookup_by_name (treename, FALSE);
g_free (treename);
+ if (!tree)
+ {
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ _("Error setting file metadata: %s"),
+ _("can't open metadata tree"));
+ return FALSE;
+ }
+
res = FALSE;
proxy = _g_daemon_vfs_get_metadata_proxy (cancellable, error);