]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2573. [bug] Replacing a non-CNAME record with a CNAME record in a
authorMark Andrews <marka@isc.org>
Thu, 5 Mar 2009 05:01:00 +0000 (05:01 +0000)
committerMark Andrews <marka@isc.org>
Thu, 5 Mar 2009 05:01:00 +0000 (05:01 +0000)
                        single transaction in a signed zone failed. [RT #19397]

CHANGES
lib/dns/rbtdb.c

diff --git a/CHANGES b/CHANGES
index 977e9cef2c21c1db3f906faa47e9699d04fd5b80..2066d1a6dcabdf2410691e587c0ffe08be8f7942 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2573.  [bug]           Replacing a non-CNAME record with a CNAME record in a
+                       single transaction in a signed zone failed. [RT #19397]
+
 2568.  [bug]           Report when the write to indicate a otherwise
                        successful start fails. [RT #19360]
 
index c9002fa936bfe864805c2169b093d939a0e34b30..e8b481a8fa1615e9fe6166687c7b1e52390ebee7 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: rbtdb.c,v 1.196.18.55 2009/01/19 23:46:15 tbox Exp $ */
+/* $Id: rbtdb.c,v 1.196.18.56 2009/03/05 05:01:00 marka Exp $ */
 
 /*! \file */
 
@@ -4355,19 +4355,15 @@ cname_and_other_data(dns_rbtnode_t *node, rbtdb_serial_t serial) {
                         * Look for active extant "other data".
                         *
                         * "Other data" is any rdataset whose type is not
-                        * KEY, RRSIG KEY, NSEC, RRSIG NSEC or RRSIG CNAME.
+                        * KEY, NSEC, SIG or RRSIG.
                         */
                        rdtype = RBTDB_RDATATYPE_BASE(header->type);
-                       if (rdtype == dns_rdatatype_rrsig ||
-                           rdtype == dns_rdatatype_sig)
-                               rdtype = RBTDB_RDATATYPE_EXT(header->type);
-                       if (rdtype != dns_rdatatype_nsec &&
-                           rdtype != dns_rdatatype_key &&
-                           rdtype != dns_rdatatype_cname) {
+                       if (rdtype != dns_rdatatype_key &&
+                           rdtype != dns_rdatatype_sig &&
+                           rdtype != dns_rdatatype_nsec &&
+                           rdtype != dns_rdatatype_rrsig) {
                                /*
-                                * We've found a type that isn't
-                                * NSEC, KEY, CNAME, or one of their
-                                * signatures.  Is it active and extant?
+                                * Is it active and extant?
                                 */
                                do {
                                        if (header->serial <= serial &&