]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
use client->query.qname
authorMark Andrews <marka@isc.org>
Thu, 21 Feb 2019 07:24:30 +0000 (18:24 +1100)
committerOndřej Surý <ondrej@sury.org>
Thu, 25 Apr 2019 13:58:00 +0000 (15:58 +0200)
(cherry picked from commit 8758d36a5e0461fb3aee8f0dc5b35ddca98e00af)
(cherry picked from commit e7826648272b341a84e497a1e17756d359b64444)
(cherry picked from commit 7c94f4b8f005f30ea59783cad59ccc078e531ab1)

lib/ns/query.c

index 23317f0e960e39cbe1e8f6796f0a943d8491be16..09d8823ec66ca9964f95c0e446fa5806d938420f 100644 (file)
@@ -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);