From 47ac9795ed3d17d20cefd5c6decf34eb4f13672e Mon Sep 17 00:00:00 2001 From: Jan Kadlec <jan.kadlec@nic.cz> Date: Thu, 5 Dec 2013 22:20:38 +0100 Subject: [PATCH] Leak fix. --- src/libknot/dnssec/zone-events.c | 10 +++++++--- src/libknot/dnssec/zone-nsec.c | 3 ++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/libknot/dnssec/zone-events.c b/src/libknot/dnssec/zone-events.c index ec92fffea4..0f97a2c414 100644 --- a/src/libknot/dnssec/zone-events.c +++ b/src/libknot/dnssec/zone-events.c @@ -247,6 +247,7 @@ int knot_dnssec_sign_changeset(const knot_zone_contents_t *zone, log_zone_error("%s Failed to sign changeset (%s)\n", msgpref, knot_strerror(ret)); knot_free_zone_keys(&zone_keys); + free(msgpref); return ret; } @@ -256,9 +257,10 @@ int knot_dnssec_sign_changeset(const knot_zone_contents_t *zone, knot_zone_clear_sorted_changes(sorted_changes); hattrie_free(sorted_changes); if (ret != KNOT_EOK) { - log_zone_error("Failed to fix NSEC(3) chain (%s)\n", + log_zone_error("%s Failed to fix NSEC(3) chain (%s)\n", msgpref, knot_strerror(ret)); knot_free_zone_keys(&zone_keys); + free(msgpref); return ret; } @@ -266,9 +268,10 @@ int knot_dnssec_sign_changeset(const knot_zone_contents_t *zone, ret = knot_zone_sign_nsecs_in_changeset(&zone_keys, &policy, out_ch); if (ret != KNOT_EOK) { - log_zone_error("Failed to sign changeset (%s)\n", + log_zone_error("%s Failed to sign changeset (%s)\n", msgpref, knot_strerror(ret)); knot_free_zone_keys(&zone_keys); + free(msgpref); return ret; } @@ -278,10 +281,11 @@ int knot_dnssec_sign_changeset(const knot_zone_contents_t *zone, &zone_keys, &policy, out_ch); if (ret != KNOT_EOK) { - log_zone_error("Failed to sign SOA RR (%s)\n", + log_zone_error("%s Failed to sign SOA RR (%s)\n", msgpref, knot_strerror(ret)); } knot_free_zone_keys(&zone_keys); + free(msgpref); *used_lifetime = policy.sign_lifetime; *used_refresh = policy.sign_refresh; diff --git a/src/libknot/dnssec/zone-nsec.c b/src/libknot/dnssec/zone-nsec.c index 09d96e23bf..8d79bff7dd 100644 --- a/src/libknot/dnssec/zone-nsec.c +++ b/src/libknot/dnssec/zone-nsec.c @@ -1156,7 +1156,8 @@ static int fix_nsec_chain(knot_dname_t *a, knot_dname_t *b, void *d) a); const knot_node_t *b_node = knot_zone_contents_find_node(fix_data->zone, b); - if (b_node == NULL || knot_node_is_non_auth(b_node)) { + assert(b_node); + if (knot_node_is_non_auth(b_node)) { // Nothing to fix in this node return NSEC_NODE_SKIP; } -- GitLab