From 9b05825e534ee4e4b2206fffcfbabbafdc69471d Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 20 Jan 2022 13:08:36 +1000 Subject: registry: skip over invalid ISO639 or ISO3166 entries If the XML file is somehow off, don't load entries that are against the spec. --- src/registry.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src') diff --git a/src/registry.c b/src/registry.c index 17b6650..65c2ed1 100644 --- a/src/registry.c +++ b/src/registry.c @@ -808,6 +808,11 @@ parse_language_list(xmlNode *language_list, struct rxkb_layout *layout) char *str = extract_text(node); struct rxkb_object *parent; + if (!str || strlen(str) != 3) { + free(str); + continue; + } + parent = &layout->base; code = rxkb_iso639_code_create(parent); code->code = str; @@ -827,6 +832,11 @@ parse_country_list(xmlNode *country_list, struct rxkb_layout *layout) char *str = extract_text(node); struct rxkb_object *parent; + if (!str || strlen(str) != 2) { + free(str); + continue; + } + parent = &layout->base; code = rxkb_iso3166_code_create(parent); code->code = str; -- cgit v1.2.1