lib/commit: reject empty metadata keys

This adds one more check to the metadata validation logic in order
to reject empty metadata keys.
This commit is contained in:
Luca BRUNO committed 2022-01-20 10:54:30 +00:00
1 parent 6230b3eeab
commit da72c245f4
3 files changed
+30 -5

No files matched your search

+13
View File
@@ -2197,6 +2197,19 @@ ostree_validate_structureof_commit (GVariant *commit,
if (!validate_variant (commit, OSTREE_COMMIT_GVARIANT_FORMAT, error))
return FALSE;
g_autoptr(GVariant) metadata = NULL;
g_variant_get_child (commit, 0, "@a{sv}", &metadata);
g_assert (metadata != NULL);
g_autoptr(GVariantIter) metadata_iter = g_variant_iter_new (metadata);
g_assert (metadata_iter != NULL);
g_autoptr(GVariant) metadata_entry = NULL;
const gchar *metadata_key = NULL;
while (g_variant_iter_loop (metadata_iter, "{sv}", &metadata_key, NULL))
{
if (metadata_key == NULL || strlen (metadata_key) == 0)
return glnx_throw (error, "Empty metadata key");
}
g_autoptr(GVariant) parent_csum_v = NULL;
g_variant_get_child (commit, 1, "@ay", &parent_csum_v);
gsize n_elts;