Commit 15804ce8ce for bind

commit 15804ce8ce9b99a36695ce17a97e500356547669
Merge: fcbce32b8e 8ca7281b64
Author: Michał Kępień <michal@isc.org>
Date:   Wed Oct 21 13:33:34 2026 +0200

    Merge tag 'v9.21.27'

diff --cc lib/dns/message.c
index 680034c89f,2a8cd353f6..0e5416c5ca
--- a/lib/dns/message.c
+++ b/lib/dns/message.c
@@@ -943,8 -944,8 +960,9 @@@ getquestions(isc_buffer_t *source, dns_
  		 */
  		isc_buffer_remainingregion(source, &r);
  		isc_buffer_setactive(source, r.length);
- 		CHECK(dns_name_fromwire(dns_name(name), source,
- 					DNS_DECOMPRESS_ALWAYS, NULL));
+ 		dns_decompress_setpermitted(&msg->dctx, true);
 -		CHECK(dns_name_fromwire(name, source, &msg->dctx, NULL));
++		CHECK(dns_name_fromwire(dns_name(name), source, &msg->dctx,
++					NULL));

  		ISC_LIST_APPEND(*section, name, link);

@@@ -1088,8 -1089,8 +1106,9 @@@ getsection(isc_buffer_t *source, dns_me
  		 */
  		isc_buffer_remainingregion(source, &r);
  		isc_buffer_setactive(source, r.length);
- 		CHECK(dns_name_fromwire(dns_name(name), source,
- 					DNS_DECOMPRESS_ALWAYS, NULL));
+ 		dns_decompress_setpermitted(&msg->dctx, true);
 -		CHECK(dns_name_fromwire(name, source, &msg->dctx, NULL));
++		CHECK(dns_name_fromwire(dns_name(name), source, &msg->dctx,
++					NULL));

  		/*
  		 * Get type, class, ttl, and rdatalen.  Verify that at least
diff --cc lib/ns/query.c
index 56235e4a04,263372c766..50a04e2160
--- a/lib/ns/query.c
+++ b/lib/ns/query.c
@@@ -4565,7 -4561,11 +4566,11 @@@ redirect2(ns_client_t *client, dns_name
  		return ISC_R_NOTFOUND;
  	}

- 	if (dns_name_issubdomain(name, client->inner.view->redirectzone)) {
+ 	tname = name;
+ 	if (tname->length == 0) {
 -		tname = client->query.qname;
++		tname = dns_name(client->query.qname);
+ 	}
+ 	if (dns_name_issubdomain(tname, client->inner.view->redirectzone)) {
  		return ISC_R_NOTFOUND;
  	}