diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c index b66dd62784..65f25773d8 100644 --- a/bin/dnssec/dnssec-signzone.c +++ b/bin/dnssec/dnssec-signzone.c @@ -17,7 +17,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: dnssec-signzone.c,v 1.109 2000/10/28 01:09:36 bwelling Exp $ */ +/* $Id: dnssec-signzone.c,v 1.110 2000/10/28 22:56:25 bwelling Exp $ */ #include @@ -506,6 +506,8 @@ importparentsig(dns_db_t *db, dns_diff_t *diff, dns_name_t *name, dns_rdataset_init(&newset); dns_rdataset_init(&sigset); + dns_rdata_init(&rdata); + dns_rdata_init(&newrdata); opendb("signedkey-", name, dns_db_class(db), &newdb); if (newdb == NULL) @@ -531,7 +533,6 @@ importparentsig(dns_db_t *db, dns_diff_t *diff, dns_name_t *name, result = dns_rdataset_first(set); check_result(result, "dns_rdataset_first()"); for (; result == ISC_R_SUCCESS; result = dns_rdataset_next(set)) { - dns_rdata_init(&rdata); dns_rdataset_current(set, &rdata); result = dns_rdataset_first(&newset); check_result(result, "dns_rdataset_first()"); @@ -539,7 +540,6 @@ importparentsig(dns_db_t *db, dns_diff_t *diff, dns_name_t *name, result == ISC_R_SUCCESS; result = dns_rdataset_next(&newset)) { - dns_rdata_init(&newrdata); dns_rdataset_current(&newset, &newrdata); if (dns_rdata_compare(&rdata, &newrdata) == 0) break; @@ -547,6 +547,7 @@ importparentsig(dns_db_t *db, dns_diff_t *diff, dns_name_t *name, } if (result != ISC_R_SUCCESS) break; + dns_rdata_invalidate(&newrdata); dns_rdata_invalidate(&rdata); } if (result != ISC_R_NOMORE)