From d2f7b969fe5f9f3e955068b789ab1ee4fc620c81 Mon Sep 17 00:00:00 2001 From: Aram Sargsyan Date: Mon, 13 Apr 2026 11:38:19 +0000 Subject: [PATCH] Fix case-sensitivity bug in zone filename token-parsing The setfilename() function uses case-insensitive strcasestr() when matching the possible tokens, but then one of the token parsers uses case-sensitive INSIST checks which can assert when, for example, matching '%X' and INSIST only accepts '%x'. The case-insensitivity is documented, which means it's the parser that needs to be fixed, not the matcher. Convert the character to lowercase before checking the token's validity. --- lib/dns/zoneproperties.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/dns/zoneproperties.c b/lib/dns/zoneproperties.c index 96f9d8eef4..a8e415660c 100644 --- a/lib/dns/zoneproperties.c +++ b/lib/dns/zoneproperties.c @@ -366,7 +366,7 @@ tokenparse_label(const token_names_t *names, const foundtoken_t *token, dns_name_copy(dns_rootname, target); labels = dns_name_countlabels(names->zonename); - labeltokidx = token->pos[token->len - 1]; + labeltokidx = isc_ascii_tolower(token->pos[token->len - 1]); if (token->len == 2) { /* * %z, %y, %x pattern