From: Mark Andrews Date: Thu, 26 Nov 2009 03:45:43 +0000 (+0000) Subject: 2790. [bug] Handle DS queries to stub zones. X-Git-Tag: v9.4.3-P1~1^9~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54d83f4a68d4f8a4346293a14b940f5a56ebca39;p=thirdparty%2Fbind9.git 2790. [bug] Handle DS queries to stub zones. --- diff --git a/CHANGES b/CHANGES index 8db96beadb8..d116aee3903 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,5 @@ +2790. [bug] Handle DS queries to stub zones. + 2772. [security] When validating, track whether pending data was from the additional section or not and only return it if validates as secure. [RT #20438] diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c index 0db0ec27d5e..11187323aa2 100644 --- a/lib/dns/rbtdb.c +++ b/lib/dns/rbtdb.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: rbtdb.c,v 1.196.18.57 2009/11/25 04:50:24 marka Exp $ */ +/* $Id: rbtdb.c,v 1.196.18.58 2009/11/26 03:45:43 marka Exp $ */ /*! \file */ @@ -2608,12 +2608,18 @@ zone_find(dns_db_t *db, dns_name_t *name, dns_dbversion_t *version, } else { /* * The node may be a zone cut itself. If it might be one, - * make sure we check for it later. + * make sure we check for it later. + * + * DS records live above the zone cut in ordinary zone so + * we want to ignore any referral. + * + * Stub zones don't have anything "above" the delgation so + * we always return a referral. */ if (node->find_callback && - (node != search.rbtdb->origin_node || - IS_STUB(search.rbtdb)) && - !dns_rdatatype_atparent(type)) + ((node != search.rbtdb->origin_node && + !dns_rdatatype_atparent(type)) || + IS_STUB(search.rbtdb))) maybe_zonecut = ISC_TRUE; }