diff --git a/src/libostree/ostree-mutable-tree.c b/src/libostree/ostree-mutable-tree.c index bc4f4250..d0f21f37 100644 --- a/src/libostree/ostree-mutable-tree.c +++ b/src/libostree/ostree-mutable-tree.c @@ -159,6 +159,11 @@ ostree_mutable_tree_replace_file (OstreeMutableTree *self, { gboolean ret = FALSE; + g_return_val_if_fail (name != NULL, FALSE); + + if (!ot_util_filename_validate (name, error)) + goto out; + if (g_hash_table_lookup (self->subdirs, name)) { g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, @@ -187,6 +192,9 @@ ostree_mutable_tree_ensure_dir (OstreeMutableTree *self, g_return_val_if_fail (name != NULL, FALSE); + if (!ot_util_filename_validate (name, error)) + goto out; + if (g_hash_table_lookup (self->files, name)) { g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, diff --git a/src/libostree/ostree-repo-commit.c b/src/libostree/ostree-repo-commit.c index 60eb6260..19040a45 100644 --- a/src/libostree/ostree-repo-commit.c +++ b/src/libostree/ostree-repo-commit.c @@ -2225,6 +2225,10 @@ create_tree_variant_from_hashes (GHashTable *file_checksums, while (g_hash_table_iter_next (&hash_iter, &key, &value)) { const char *name = key; + + /* Should have been validated earlier, but be paranoid */ + g_assert (ot_util_filename_validate (name, NULL)); + sorted_filenames = g_slist_prepend (sorted_filenames, (char*)name); }