]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
pullup:
authorBrian Wellington <source@isc.org>
Tue, 5 Dec 2000 18:59:49 +0000 (18:59 +0000)
committerBrian Wellington <source@isc.org>
Tue, 5 Dec 2000 18:59:49 +0000 (18:59 +0000)
 555.   [bug]           Slave server attempting zone transfer could crash
                        with an assertion failure on certain malformed
                        responses from the master. [RT #457]

CHANGES
lib/dns/xfrin.c

diff --git a/CHANGES b/CHANGES
index 98635410557d48fd68a1c5cbbb02f740850e5de8..370437453a8d62b5f87a99457e3b7672a2392030 100644 (file)
--- a/CHANGES
+++ b/CHANGES
  572.  [bug]           Quoted strings were not accepted as key names in
                        address match lists.
 
+ 555.  [bug]           Slave server attempting zone transfer could crash
+                       with an assertion failure on certain malformed
+                       responses from the master. [RT #457]
+
  554.  [bug]           In some cases, not all of the dnssec tools were
                        properly installed.
 
index 9fec65638be8adc4ee68f0e78949d55a9bfa5d52..62176bb456fae0d4d5504aa11f5c1e7fed02e29a 100644 (file)
@@ -15,7 +15,7 @@
  * SOFTWARE.
  */
 
-/* $Id: xfrin.c,v 1.79.2.6 2000/09/01 01:06:06 bwelling Exp $ */
+/* $Id: xfrin.c,v 1.79.2.7 2000/12/05 18:59:47 bwelling Exp $ */
 
 #include <config.h>
 
@@ -406,6 +406,11 @@ xfr_rr(dns_xfrin_ctx_t *xfr, dns_name_t *name, isc_uint32_t ttl,
  redo:
        switch (xfr->state) {
        case XFRST_SOAQUERY:
+               if (rdata->type != dns_rdatatype_soa) {
+                       xfrin_log(xfr, ISC_LOG_ERROR,
+                                 "non-SOA response to SOA query");
+                       FAIL(DNS_R_FORMERR);
+               }
                xfr->end_serial = dns_soa_getserial(rdata);
                if (!DNS_SERIAL_GT(xfr->end_serial,
                                   xfr->ixfr.request_serial)) {