]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Remove a kludge to process non-authoritative CNAME response
authorOndřej Surý <ondrej@isc.org>
Mon, 17 Mar 2025 15:31:14 +0000 (16:31 +0100)
committerEvan Hunt <each@isc.org>
Mon, 17 Mar 2025 23:23:24 +0000 (23:23 +0000)
A BIND 8 server could return a non-authoritative answer when a CNAME is
followed.  This is no longer handled as a valid answer.

lib/dns/resolver.c

index 25e7b3baadcd9b6bb7f8a751ee53022f048ecf9d..d3c860e9113ec8cee1074766542dc884e2a61b48 100644 (file)
@@ -7411,15 +7411,6 @@ log_nsid(isc_buffer_t *opt, size_t nsid_len, resquery_t *query, int level,
        isc_mem_put(mctx, buf, buflen);
 }
 
-static bool
-iscname(dns_message_t *message, dns_name_t *name) {
-       isc_result_t result;
-
-       result = dns_message_findname(message, DNS_SECTION_ANSWER, name,
-                                     dns_rdatatype_cname, 0, NULL, NULL);
-       return result == ISC_R_SUCCESS ? true : false;
-}
-
 static bool
 betterreferral(respctx_t *rctx) {
        isc_result_t result;
@@ -8341,20 +8332,6 @@ rctx_answer(respctx_t *rctx) {
                if (result != ISC_R_SUCCESS) {
                        FCTXTRACE3("rctx_answer_positive (AA/fwd)", result);
                }
-       } else if (iscname(query->rmessage, fctx->name) &&
-                  fctx->type != dns_rdatatype_any &&
-                  fctx->type != dns_rdatatype_cname)
-       {
-               /*
-                * A BIND8 server could return a non-authoritative
-                * answer when a CNAME is followed.  We should treat
-                * it as a valid answer.
-                */
-               result = rctx_answer_positive(rctx);
-               if (result != ISC_R_SUCCESS) {
-                       FCTXTRACE3("rctx_answer_positive (!ANY/!CNAME)",
-                                  result);
-               }
        } else if (fctx->type != dns_rdatatype_ns && !betterreferral(rctx)) {
                result = rctx_answer_positive(rctx);
                if (result != ISC_R_SUCCESS) {