From fdb6a8e3c9f4945dd62bb872c93ee8ca2d751658 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Thu, 7 Dec 2017 19:29:21 +1100 Subject: [PATCH] 4843. [bug] dnssec-signzone free hashlist on exit. [RT #46791] (cherry picked from commit 8444b4856a608fe36530c8828231cd1a8c982fe3) --- CHANGES | 2 ++ bin/dnssec/dnssec-signzone.c | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/CHANGES b/CHANGES index 91bd204071..9c31009fa0 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,5 @@ +4843. [bug] dnssec-signzone free hashlist on exit. [RT #46791] + 4842. [bug] Conditionally compile opensslecdsa_link.c to avoid warnings about unused function. [RT #46790] diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c index f09e8efa27..f9b295be4b 100644 --- a/bin/dnssec/dnssec-signzone.c +++ b/bin/dnssec/dnssec-signzone.c @@ -718,6 +718,17 @@ hashlist_init(hashlist_t *l, unsigned int nodes, unsigned int length) { } } +static void +hashlist_free(hashlist_t *l) { + if (l->hashbuf) { + free(l->hashbuf); + l->hashbuf = NULL; + l->entries = 0; + l->length = 0; + l->size = 0; + } +} + static void hashlist_add(hashlist_t *l, const unsigned char *hash, size_t len) { @@ -3753,6 +3764,9 @@ main(int argc, char *argv[]) { dns_db_closeversion(gdb, &gversion, ISC_FALSE); dns_db_detach(&gdb); + if (IS_NSEC3) + hashlist_free(&hashlist); + while (!ISC_LIST_EMPTY(keylist)) { key = ISC_LIST_HEAD(keylist); ISC_LIST_UNLINK(keylist, key, link); -- GitLab