]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
pullup:
authorBrian Wellington <source@isc.org>
Wed, 6 Jun 2001 00:11:57 +0000 (00:11 +0000)
committerBrian Wellington <source@isc.org>
Wed, 6 Jun 2001 00:11:57 +0000 (00:11 +0000)
860.   [func]          Drop cross class glue in zone transfers.

CHANGES
lib/dns/xfrin.c

diff --git a/CHANGES b/CHANGES
index 2c191e7d9c5b887b2ce2da35b492882a6f3f55c4..d7ce104063bf6469d35d02c84db77d793734386b 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+ 860.  [func]          Drop cross class glue in zone transfers.
+
  850.  [bug]           dns_rbt_findnode() would not find nodes that were
                        split on a bitstring label somewhere other than in
                        the last label of the node. [RT #1351]
index 0b5c6492b4b8a5c84808c7bc6ba3e2c27e798336..1862672d2036ebc80b70a58a63968d487a3dfc64 100644 (file)
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: xfrin.c,v 1.109.2.3 2001/05/14 03:22:05 marka Exp $ */
+/* $Id: xfrin.c,v 1.109.2.4 2001/06/06 00:11:57 bwelling Exp $ */
 
 #include <config.h>
 
@@ -526,6 +526,13 @@ xfr_rr(dns_xfrin_ctx_t *xfr, dns_name_t *name, isc_uint32_t ttl,
                break;
 
        case XFRST_AXFR:
+               /*
+                * Old BIND's sent cross class A records for non IN classes.
+                */
+               if (rdata->type == dns_rdatatype_a &&
+                   rdata->rdclass != xfr->rdclass &&
+                   xfr->rdclass != dns_rdataclass_in)
+                       break;
                CHECK(axfr_putdata(xfr, DNS_DIFFOP_ADD, name, ttl, rdata));
                if (rdata->type == dns_rdatatype_soa) {
                        CHECK(axfr_commit(xfr));