Cleanup orphaned empty-non-terminal NSEC3
When OPTOUT was in use we didn't ensure that NSEC3 records for orphaned empty-non-terminals where removed. Check if there are orphaned empty-non-terminal NSEC3 even if there wasn't an NSEC3 RRset to be removed in dns_nsec3_delnsec3.
This commit is contained in:
@@ -1440,7 +1440,7 @@ dns_nsec3_delnsec3(dns_db_t *db, dns_dbversion_t *version,
|
||||
|
||||
result = dns_dbiterator_seek(dbit, hashname);
|
||||
if (result == ISC_R_NOTFOUND || result == DNS_R_PARTIALMATCH) {
|
||||
goto success;
|
||||
goto cleanup_orphaned_ents;
|
||||
}
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto failure;
|
||||
@@ -1452,7 +1452,7 @@ dns_nsec3_delnsec3(dns_db_t *db, dns_dbversion_t *version,
|
||||
(isc_stdtime_t)0, &rdataset, NULL);
|
||||
dns_db_detachnode(db, &node);
|
||||
if (result == ISC_R_NOTFOUND) {
|
||||
goto success;
|
||||
goto cleanup_orphaned_ents;
|
||||
}
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto failure;
|
||||
@@ -1537,6 +1537,7 @@ dns_nsec3_delnsec3(dns_db_t *db, dns_dbversion_t *version,
|
||||
/*
|
||||
* Delete NSEC3 records for now non active nodes.
|
||||
*/
|
||||
cleanup_orphaned_ents:
|
||||
dns_name_init(&empty, NULL);
|
||||
dns_name_clone(name, &empty);
|
||||
do {
|
||||
|
||||
Reference in New Issue
Block a user