From: Mark Andrews Date: Thu, 21 Feb 2019 07:24:30 +0000 (+1100) Subject: use client->query.qname X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0581fb563c2b1399ac4feade59503d69fe56d4f0;p=thirdparty%2Fbind9.git use client->query.qname (cherry picked from commit 8758d36a5e0461fb3aee8f0dc5b35ddca98e00af) (cherry picked from commit e7826648272b341a84e497a1e17756d359b64444) (cherry picked from commit 7c94f4b8f005f30ea59783cad59ccc078e531ab1) --- diff --git a/lib/ns/query.c b/lib/ns/query.c index 23317f0e960..09d8823ec66 100644 --- a/lib/ns/query.c +++ b/lib/ns/query.c @@ -4787,6 +4787,7 @@ redirect2(ns_client_t *client, dns_name_t *name, dns_rdataset_t *rdataset, dns_dbversion_t *version = NULL; dns_zone_t *zone = NULL; bool is_zone; + unsigned int labels; unsigned int options; CTRACE(ISC_LOG_DEBUG(3), "redirect2"); @@ -4829,12 +4830,13 @@ redirect2(ns_client_t *client, dns_name_t *name, dns_rdataset_t *rdataset, } redirectname = dns_fixedname_initname(&fixedredirect); - if (dns_name_countlabels(name) > 1U) { + labels = dns_name_countlabels(client->query.qname); + if (labels > 1U) { dns_name_t prefix; - unsigned int labels = dns_name_countlabels(name) - 1; dns_name_init(&prefix, NULL); - dns_name_getlabelsequence(name, 0, labels, &prefix); + dns_name_getlabelsequence(client->query.qname, 0, labels - 1, + &prefix); result = dns_name_concatenate(&prefix, client->view->redirectzone, redirectname, NULL);