From: Libor Peltan Date: Wed, 29 May 2019 12:44:55 +0000 (+0200) Subject: bugfix: access to removed node if NSEC w/o RRSIG had been there X-Git-Tag: v2.9.0~258 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cfe2a45629dfca50a1eb69fcaa14288ec1df4671;p=thirdparty%2Fknot-dns.git bugfix: access to removed node if NSEC w/o RRSIG had been there --- diff --git a/src/knot/dnssec/nsec-chain.c b/src/knot/dnssec/nsec-chain.c index f9bf26f21e..8bc1bb808b 100644 --- a/src/knot/dnssec/nsec-chain.c +++ b/src/knot/dnssec/nsec-chain.c @@ -386,15 +386,15 @@ int knot_nsec_changeset_remove(const zone_node_t *n, zone_update_t *update) int result = KNOT_EOK; knot_rrset_t nsec_rem = node_rrset(n, KNOT_RRTYPE_NSEC); + knot_rrset_t nsec3_rem = node_rrset(n, KNOT_RRTYPE_NSEC3); + knot_rrset_t rrsigs = node_rrset(n, KNOT_RRTYPE_RRSIG); + if (!knot_rrset_empty(&nsec_rem)) { result = zone_update_remove(update, &nsec_rem); } - nsec_rem = node_rrset(n, KNOT_RRTYPE_NSEC3); - if (result == KNOT_EOK && !knot_rrset_empty(&nsec_rem)) { - result = zone_update_remove(update, &nsec_rem); + if (result == KNOT_EOK && !knot_rrset_empty(&nsec3_rem)) { + result = zone_update_remove(update, &nsec3_rem); } - - knot_rrset_t rrsigs = node_rrset(n, KNOT_RRTYPE_RRSIG); if (!knot_rrset_empty(&rrsigs) && result == KNOT_EOK) { knot_rrset_t synth_rrsigs; knot_rrset_init(&synth_rrsigs, n->owner, KNOT_RRTYPE_RRSIG,