From: Mark Andrews Date: Tue, 7 Jun 2005 01:42:29 +0000 (+0000) Subject: 1861. [bug] dig could trigger a INSIST on certain malformed X-Git-Tag: v9.2.6b1~78^2~50 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=2fa0485e9e969dd42dd10339354d7949db46111a;p=thirdparty%2Fbind9.git 1861. [bug] dig could trigger a INSIST on certain malformed responses. [RT #14801] --- diff --git a/CHANGES b/CHANGES index 08ded809a91..ca6558c4556 100644 --- 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 diff --git a/lib/dns/message.c b/lib/dns/message.c index 997cb169485..cffb42966d7 100644 --- a/lib/dns/message.c +++ b/lib/dns/message.c @@ -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); }