2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-29 13:38:26 +00:00

1381. [bug] named failed to correctly process answers that

contained DNAME records where the resulting CNAME
                        resulted in a negative answer.
This commit is contained in:
Mark Andrews 2002-09-12 04:52:13 +00:00
parent acfbd7a478
commit aec2d57d5b
2 changed files with 9 additions and 3 deletions

View File

@ -1,3 +1,7 @@
1381. [bug] named failed to correctly process answers that
contained DNAME records where the resulting CNAME
resulted in a negative answer.
1380. [func] 'rndc recursing' dump recursing queries to 1380. [func] 'rndc recursing' dump recursing queries to
'recursing-file = "named.recursing";'. 'recursing-file = "named.recursing";'.

View File

@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $Id: resolver.c,v 1.252 2002/09/12 04:42:46 marka Exp $ */ /* $Id: resolver.c,v 1.253 2002/09/12 04:52:13 marka Exp $ */
#include <config.h> #include <config.h>
@ -4001,8 +4001,8 @@ answer_response(fetchctx_t *fctx) {
for (rdataset = ISC_LIST_HEAD(name->list); for (rdataset = ISC_LIST_HEAD(name->list);
rdataset != NULL; rdataset != NULL;
rdataset = ISC_LIST_NEXT(rdataset, link)) { rdataset = ISC_LIST_NEXT(rdataset, link)) {
isc_boolean_t found_dname = ISC_FALSE;
found = ISC_FALSE; found = ISC_FALSE;
want_chaining = ISC_FALSE;
aflag = 0; aflag = 0;
if (rdataset->type == dns_rdatatype_dname) { if (rdataset->type == dns_rdatatype_dname) {
/* /*
@ -4029,6 +4029,8 @@ answer_response(fetchctx_t *fctx) {
want_chaining = ISC_FALSE; want_chaining = ISC_FALSE;
} else if (result != ISC_R_SUCCESS) } else if (result != ISC_R_SUCCESS)
return (result); return (result);
else
found_dname = ISC_TRUE;
} else if (rdataset->type == dns_rdatatype_sig } else if (rdataset->type == dns_rdatatype_sig
&& rdataset->covers == && rdataset->covers ==
dns_rdatatype_dname) { dns_rdatatype_dname) {
@ -4074,7 +4076,7 @@ answer_response(fetchctx_t *fctx) {
/* /*
* DNAME chaining. * DNAME chaining.
*/ */
if (want_chaining) { if (found_dname) {
/* /*
* Copy the the dname into the * Copy the the dname into the
* qname fixed name. * qname fixed name.