From: Christopher Faulet Date: Thu, 22 Jul 2021 12:29:26 +0000 (+0200) Subject: BUG/MINOR: resolvers: Use a null-terminated string to lookup in servers tree X-Git-Tag: v2.5-dev3~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1f923391d1841435de7891682f585c040faef2bc;p=thirdparty%2Fhaproxy.git BUG/MINOR: resolvers: Use a null-terminated string to lookup in servers tree When we evaluate a DNS response item, it may be necessary to look for a server with a hostname matching the item target into the named servers tree. To do so, the item target is transformed to a lowercase string. It must be a null-terminated string. Thus we must explicitly set the trailing '\0' character. For a specific resolution, the named servers tree contains all servers using this resolution with a hostname loaded from a state file. Because of this bug, same entry may be duplicated because we are unable to find the right server, assigning this way the item to a free server slot. This patch should fix the issue #1333. It must be backported as far as 2.2. --- diff --git a/src/resolvers.c b/src/resolvers.c index 0a4ea3528b..1704d7227a 100644 --- a/src/resolvers.c +++ b/src/resolvers.c @@ -694,6 +694,7 @@ static void resolv_check_response(struct resolv_resolution *res) /* convert the key to lookup in lower case */ for (i = 0 ; item->target[i] ; i++) target[i] = tolower(item->target[i]); + target[i] = 0; node = ebis_lookup(&srvrq->named_servers, target); if (node) {