diff --git a/src/as-validator-issue-tag.h b/src/as-validator-issue-tag.h index dce04326..6291ffce 100644 --- a/src/as-validator-issue-tag.h +++ b/src/as-validator-issue-tag.h @@ -342,6 +342,12 @@ AsValidatorIssueTag as_validator_issue_tag_list[] = { N_("This `hardware` item contains an invalid value. It should be a Computer Hardware ID (CHID) UUID without braces.") }, + { "relation-memory-value-invalid", + AS_ISSUE_SEVERITY_WARNING, + /* TRANSLATORS: Please do not translate AppStream tag and property names (in backticks). */ + N_("A `memory` item must only contain a non-zero integer value, depicting a system memory size in mebibyte (MiB)") + }, + { "component-type-invalid", AS_ISSUE_SEVERITY_ERROR, N_("The set component type is not a recognized, valid AppStream component type.") diff --git a/src/as-validator.c b/src/as-validator.c index 74232ae7..4d5dbad0 100644 --- a/src/as-validator.c +++ b/src/as-validator.c @@ -1473,6 +1473,11 @@ as_validator_check_relations (AsValidator *validator, as_validator_add_issue (validator, iter, "relation-hardware-value-invalid", content); } + /* check memory for sanity */ + if (item_kind == AS_RELATION_ITEM_KIND_MEMORY) + if (!as_str_verify_integer (content, 1, G_MAXINT64)) + as_validator_add_issue (validator, iter, "relation-memory-value-invalid", content); + /* check for redefinition */ rel_item_id = g_strdup_printf ("%s%s%s%s", node_name, content, compare_str, version); rel_dupe_type = g_hash_table_lookup (known_entries, rel_item_id);