dns_rdata_rrsig_t sig;
dst_key_t *dstkey = NULL;
isc_result_t result;
+ dns_rdataset_t rdataset = DNS_RDATASET_INIT;
- for (result = dns_rdataset_first(val->event->sigrdataset);
- result == ISC_R_SUCCESS;
- result = dns_rdataset_next(val->event->sigrdataset))
+ dns_rdataset_clone(val->event->sigrdataset, &rdataset);
+
+ for (result = dns_rdataset_first(&rdataset); result == ISC_R_SUCCESS;
+ result = dns_rdataset_next(&rdataset))
{
dns_rdata_t rdata = DNS_RDATA_INIT;
- dns_rdataset_current(val->event->sigrdataset, &rdata);
+ dns_rdataset_current(&rdataset, &rdata);
result = dns_rdata_tostruct(&rdata, &sig, NULL);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
if (keyid != sig.keyid || algorithm != sig.algorithm) {
if (dstkey != NULL) {
dst_key_free(&dstkey);
}
+ dns_rdataset_disassociate(&rdataset);
return result;
}