diff --git a/CHANGES b/CHANGES index 2d501d673d..d70406f264 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,5 @@ +1331. [bug] lwres_getrrsetbyname leaked memory. [RT #3159] + 1330. [bug] 'rndc stop' failed to cause zones to be flushed sometimes. [RT #3157] diff --git a/lib/lwres/getrrset.c b/lib/lwres/getrrset.c index 16f4765c56..96ae4c5edf 100644 --- a/lib/lwres/getrrset.c +++ b/lib/lwres/getrrset.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: getrrset.c,v 1.11 2001/07/10 18:25:44 gson Exp $ */ +/* $Id: getrrset.c,v 1.12 2002/06/20 02:31:17 marka Exp $ */ #include @@ -175,6 +175,7 @@ lwres_getrrsetbyname(const char *hostname, unsigned int rdclass, } lwres_grbnresponse_free(lwrctx, &response); + lwres_conf_clear(lwrctx); lwres_context_destroy(&lwrctx); *res = rrset; return (ERRSET_SUCCESS); @@ -183,10 +184,11 @@ lwres_getrrsetbyname(const char *hostname, unsigned int rdclass, lwres_freerrset(rrset); if (response != NULL) lwres_grbnresponse_free(lwrctx, &response); - if (lwrctx != NULL) + if (lwrctx != NULL) { + lwres_conf_clear(lwrctx); lwres_context_destroy(&lwrctx); + } return (result); - } void