diff options
Diffstat (limited to 'client/gdaemonfile.c')
-rw-r--r-- | client/gdaemonfile.c | 22 |
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); |