]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2790. [bug] Handle DS queries to stub zones.
authorMark Andrews <marka@isc.org>
Thu, 26 Nov 2009 03:28:19 +0000 (03:28 +0000)
committerMark Andrews <marka@isc.org>
Thu, 26 Nov 2009 03:28:19 +0000 (03:28 +0000)
CHANGES
lib/dns/rbtdb.c

diff --git a/CHANGES b/CHANGES
index 363b22820aee125a68b5b0b72ed825224cdfde41..5b5e92bd9cf963ea58c244fff2806dd356806949 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+2790.  [bug]           Handle DS queries to stub zones.
+
 2789.   [bug]           Fixed an INSIST in dispatch.c [RT #20576]
 
 2788.  [bug]           dnssec-signzone could sign with keys that were
index 6397fb37041ba591c3d110804793643e76c9df0e..4cfbd4d7f2ecb649da9c18b015fb1b08528880e8 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: rbtdb.c,v 1.290 2009/11/25 02:22:05 marka Exp $ */
+/* $Id: rbtdb.c,v 1.291 2009/11/26 03:28:19 marka Exp $ */
 
 /*! \file */
 
@@ -3643,12 +3643,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;
        }