]> 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 04:57:40 +0000 (04:57 +0000)
committerMark Andrews <marka@isc.org>
Thu, 5 Mar 2009 04:57:40 +0000 (04:57 +0000)
                        single transaction in a signed zone failed. [RT #19397]

CHANGES
lib/dns/rbtdb.c

diff --git a/CHANGES b/CHANGES
index 78631ac61bcf396305d8cceb5480ccb4ab9df9c4..077af1bebc704f5eb1af456ded25c1866b146a82 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 5d00078113d5d470e420ee8ce9a4f444772582b6..1019cd447ba3aa12b07e84d2a7dc04c7346a9ffe 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: rbtdb.c,v 1.270.12.3 2009/01/28 23:24:19 jinmei Exp $ */
+/* $Id: rbtdb.c,v 1.270.12.4 2009/03/05 04:57:40 marka Exp $ */
 
 /*! \file */
 
@@ -5235,19 +5235,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 &&