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.
/* 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) {