]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
1861. [bug] dig could trigger a INSIST on certain malformed
authorMark Andrews <marka@isc.org>
Tue, 7 Jun 2005 01:42:29 +0000 (01:42 +0000)
committerMark Andrews <marka@isc.org>
Tue, 7 Jun 2005 01:42:29 +0000 (01:42 +0000)
                        responses. [RT #14801]

CHANGES
lib/dns/message.c

diff --git a/CHANGES b/CHANGES
index 08ded809a91765d85be4aa5995cb97f47b23ccca..ca6558c455623a65cc84014201528bca08534f0d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -29,7 +29,8 @@
                        New zone options: check-mx and integrity-check. 
                        [RT #4940]
 
-1861.  [placeholder]   rt14801
+1861.  [bug]           dig could trigger a INSIST on certain malformed
+                       responses. [RT #14801]
 
 1860.  [placeholder]   rt14775
 
index 997cb1694852bb0c7a9a9c4ce8c2f5751fe2ccb8..cffb42966d7f7d066a4209f3a9675a82d6ea64f8 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: message.c,v 1.226 2005/04/27 04:56:48 sra Exp $ */
+/* $Id: message.c,v 1.227 2005/06/07 01:42:29 marka Exp $ */
 
 /*! \file */
 
@@ -1478,6 +1478,13 @@ getsection(isc_buffer_t *source, dns_message_t *msg, dns_decompress_t *dctx,
                        free_name = ISC_FALSE;
                }
 
+               if (seen_problem) {
+                       if (free_name)
+                               isc_mempool_put(msg->namepool, name);
+                       if (free_rdataset)
+                               isc_mempool_put(msg->rdspool, rdataset);
+                       free_name = free_rdataset = ISC_FALSE;
+               }
                INSIST(free_name == ISC_FALSE);
                INSIST(free_rdataset == ISC_FALSE);
        }