]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
pullup:
authorAndreas Gustafsson <source@isc.org>
Mon, 7 Aug 2000 22:07:09 +0000 (22:07 +0000)
committerAndreas Gustafsson <source@isc.org>
Mon, 7 Aug 2000 22:07:09 +0000 (22:07 +0000)
 372.   [bug]           Deal with Microsoft DNS servers appending two bytes of
                        garbage to zone transfer requests.

CHANGES
lib/dns/message.c

diff --git a/CHANGES b/CHANGES
index c55d71ee4263cf1e678460254450fcc47e5bbde3..96f749d3bb5cdadf6cd44d529c8aaa9f06ce22fd 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,9 @@
 
        --- 9.0.0rc2 released ---
 
+ 372.  [bug]           Deal with Microsoft DNS servers appending two bytes of
+                       garbage to zone transfer requests.
+
  371.  [bug]           At high debug levels, doing an outgoing zone transfer
                        of a very large RRset could cause an assertion failure
                        during logging.
index 7d6cdb6be26ecda29d2c7a5644ef5e626cd973e8..6462897dcf37f2dd070752ca2f64bd065c799095 100644 (file)
@@ -15,7 +15,7 @@
  * SOFTWARE.
  */
 
-/* $Id: message.c,v 1.131.2.5 2000/07/27 17:18:46 bwelling Exp $ */
+/* $Id: message.c,v 1.131.2.6 2000/08/07 22:07:09 gson Exp $ */
 
 /***
  *** Imports
@@ -30,6 +30,7 @@
 
 #include <dns/dnssec.h>
 #include <dns/keyvalues.h>
+#include <dns/log.h>
 #include <dns/message.h>
 #include <dns/rdata.h>
 #include <dns/rdatalist.h>
@@ -1484,8 +1485,15 @@ dns_message_parse(dns_message_t *msg, isc_buffer_t *source,
                return (ret);
 
        isc_buffer_remainingregion(source, &r);
-       if (r.length != 0)
-               return (DNS_R_FORMERR);
+       if (r.length != 0) {
+               if (r.length == 2 && r.base[0] == 'M' && r.base[1] == 'S') {
+                       isc_log_write(dns_lctx, ISC_LOGCATEGORY_GENERAL,
+                                     DNS_LOGMODULE_MESSAGE, ISC_LOG_INFO,
+                                     "message has nonstandard Microsoft tag");
+               } else {
+                       return (DNS_R_FORMERR);
+               }
+       }
 
        if (msg->tsig != NULL || msg->tsigkey != NULL || msg->sig0 != NULL) {
                msg->saved = isc_mem_get(msg->mctx, sizeof(isc_region_t));