From e06edff506746e2785302f1dc1edb7dfece2e393 Mon Sep 17 00:00:00 2001 From: JakobDev Date: Fri, 3 Jun 2022 11:27:37 +0200 Subject: [PATCH 1/2] Add validation for --- src/as-validator-issue-tag.h | 6 ++++++ src/as-validator.c | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/src/as-validator-issue-tag.h b/src/as-validator-issue-tag.h index dce04326..b20897d7 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_("This `memory` item contains an invalid value. It should only contain digits") + }, + { "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 41ccfb05..17ee501e 100644 --- a/src/as-validator.c +++ b/src/as-validator.c @@ -1473,6 +1473,15 @@ 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) { + for (guint i = 0; content[i] != '\0'; i++) { + if (!g_ascii_isdigit(content[i])) { + 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); From 6f0b95da60f1d0e3c566c132c6e57a675963bb02 Mon Sep 17 00:00:00 2001 From: JakobDev Date: Tue, 7 Jun 2022 08:16:54 +0200 Subject: [PATCH 2/2] Do requested changes --- src/as-validator-issue-tag.h | 2 +- src/as-validator.c | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/as-validator-issue-tag.h b/src/as-validator-issue-tag.h index b20897d7..6291ffce 100644 --- a/src/as-validator-issue-tag.h +++ b/src/as-validator-issue-tag.h @@ -345,7 +345,7 @@ AsValidatorIssueTag as_validator_issue_tag_list[] = { { "relation-memory-value-invalid", AS_ISSUE_SEVERITY_WARNING, /* TRANSLATORS: Please do not translate AppStream tag and property names (in backticks). */ - N_("This `memory` item contains an invalid value. It should only contain digits") + N_("A `memory` item must only contain a non-zero integer value, depicting a system memory size in mebibyte (MiB)") }, { "component-type-invalid", diff --git a/src/as-validator.c b/src/as-validator.c index f6acf3f7..4d5dbad0 100644 --- a/src/as-validator.c +++ b/src/as-validator.c @@ -1474,13 +1474,9 @@ as_validator_check_relations (AsValidator *validator, } /* check memory for sanity */ - if (item_kind == AS_RELATION_ITEM_KIND_MEMORY) { - for (guint i = 0; content[i] != '\0'; i++) { - if (!g_ascii_isdigit(content[i])) { - as_validator_add_issue (validator, iter, "relation-memory-value-invalid", content); - } - } - } + 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);