We were not reseting the keynode value when iterating over DNSKEYs in
RRSET, so we weren't checking all DNSKEYs against all trust anchors. This
commit fixes the issue by resetting keynode with every loop.
break;
}
}
-
- dns_keytable_detachkeynode(secroots, &keynode);
goto anchors_done;
+ } else {
+ dns_keytable_detachkeynode(secroots, &keynode);
}
/*
result == ISC_R_SUCCESS;
result = dns_rdataset_next(dnskeysigs))
{
+ result = dns_keytable_find(secroots, keyname, &keynode);
+ if (result != ISC_R_SUCCESS) {
+ goto anchors_done;
+ }
dns_rdata_reset(&sigrr);
dns_rdataset_current(dnskeysigs, &sigrr);
result = dns_rdata_tostruct(&sigrr, &sig, NULL);
keynode = nextnode;
}
}
-
+ dns_keytable_detachkeynode(secroots, &keynode);
if (secure) {
break;
}