From b956ac0912fa76aa42add9ea1d033901b428f312 Mon Sep 17 00:00:00 2001 From: Lubos Slovak <lubos.slovak@nic.cz> Date: Thu, 22 Aug 2013 13:25:55 +0200 Subject: [PATCH] Fixed owner setting of empty RRSIGs. refs #4 --- src/libknot/dnssec/zone-sign.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/libknot/dnssec/zone-sign.c b/src/libknot/dnssec/zone-sign.c index eacfd9766..641442536 100644 --- a/src/libknot/dnssec/zone-sign.c +++ b/src/libknot/dnssec/zone-sign.c @@ -126,8 +126,8 @@ static int sign_rrset_one(knot_rrset_t *rrsigs, uint32_t sig_incept = policy->now; uint32_t sig_expire = sig_incept + policy->sign_lifetime; - rrsig_write_rdata(rdata, key, covered->owner, covered, sig_incept, - sig_expire); + rrsig_write_rdata(rdata, key, knot_rrset_owner(covered), covered, + sig_incept, sig_expire); // RFC 4034: The signature coveres RRSIG RDATA field (excluding the // signature) and all matching RR records, which are ordered @@ -171,8 +171,11 @@ static knot_rrset_t *create_empty_rrsigs_for(const knot_rrset_t *covered) { assert(covered); - return knot_rrset_new(covered->owner, KNOT_RRTYPE_RRSIG, - covered->rclass, covered->ttl); + // Owner must be copied + knot_dname_t *owner_copy = knot_dname_copy(knot_rrset_owner(covered)); + return knot_rrset_new(owner_copy, KNOT_RRTYPE_RRSIG, + knot_rrset_class(covered), + knot_rrset_ttl(covered)); } static bool is_valid_signature(const knot_rrset_t *rrsigs, size_t pos, -- GitLab