mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-11 01:31:48 -04:00
Cleanup the extra dns_rdataset_disassociate() code
Manually go through the code using dns_rdataset_isassociated() and use dns_rdataset_cleanup() where appropriate in places that a simple semantic patch is not able to find automatically.
This commit is contained in:
parent
8320faf64b
commit
bd074ff0ea
9 changed files with 40 additions and 61 deletions
|
|
@ -2724,15 +2724,15 @@ findkeys:
|
|||
/* Get the CDS rdataset */
|
||||
result = dns_db_findrdataset(gdb, node, ver, dns_rdatatype_cds,
|
||||
dns_rdatatype_none, 0, &cdsset, NULL);
|
||||
if (result != ISC_R_SUCCESS && dns_rdataset_isassociated(&cdsset)) {
|
||||
dns_rdataset_disassociate(&cdsset);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_rdataset_cleanup(&cdsset);
|
||||
}
|
||||
|
||||
/* Get the CDNSKEY rdataset */
|
||||
result = dns_db_findrdataset(gdb, node, ver, dns_rdatatype_cdnskey,
|
||||
dns_rdatatype_none, 0, &cdnskeyset, NULL);
|
||||
if (result != ISC_R_SUCCESS && dns_rdataset_isassociated(&cdnskeyset)) {
|
||||
dns_rdataset_disassociate(&cdnskeyset);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_rdataset_cleanup(&cdnskeyset);
|
||||
}
|
||||
|
||||
dns_diff_init(isc_g_mctx, &diff);
|
||||
|
|
|
|||
|
|
@ -942,14 +942,8 @@ find(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
|
|||
if (result == ISC_R_SUCCESS) {
|
||||
if (i == nlabels && type == dns_rdatatype_any) {
|
||||
result = DNS_R_ZONECUT;
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
if (sigrdataset != NULL &&
|
||||
dns_rdataset_isassociated(
|
||||
sigrdataset))
|
||||
{
|
||||
dns_rdataset_disassociate(
|
||||
sigrdataset);
|
||||
}
|
||||
dns_rdataset_cleanup(rdataset);
|
||||
dns_rdataset_cleanup(sigrdataset);
|
||||
} else {
|
||||
result = DNS_R_DELEGATION;
|
||||
}
|
||||
|
|
@ -1002,8 +996,8 @@ find(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
|
|||
break;
|
||||
}
|
||||
|
||||
if (rdataset == &xrdataset && dns_rdataset_isassociated(rdataset)) {
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
if (rdataset == &xrdataset) {
|
||||
dns_rdataset_cleanup(rdataset);
|
||||
}
|
||||
|
||||
if (foundname != NULL) {
|
||||
|
|
|
|||
|
|
@ -6365,8 +6365,8 @@ negcache(dns_message_t *message, fetchctx_t *fctx, const dns_name_t *name,
|
|||
result = dns_ncache_add(message, cache, node, covers, now, minttl,
|
||||
maxttl, optout, secure, added);
|
||||
|
||||
if (added == &rdataset && dns_rdataset_isassociated(added)) {
|
||||
dns_rdataset_disassociate(added);
|
||||
if (added == &rdataset) {
|
||||
dns_rdataset_cleanup(added);
|
||||
}
|
||||
|
||||
*nodep = node;
|
||||
|
|
|
|||
|
|
@ -897,8 +897,8 @@ find(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
|
|||
break;
|
||||
}
|
||||
|
||||
if (rdataset == &xrdataset && dns_rdataset_isassociated(rdataset)) {
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
if (rdataset == &xrdataset) {
|
||||
dns_rdataset_cleanup(rdataset);
|
||||
}
|
||||
|
||||
if (foundname != NULL) {
|
||||
|
|
|
|||
|
|
@ -1230,10 +1230,8 @@ seek_dnskey(dns_validator_t *val) {
|
|||
break;
|
||||
}
|
||||
|
||||
if (dns_rdataset_isassociated(&val->frdataset) &&
|
||||
val->keyset != &val->frdataset)
|
||||
{
|
||||
dns_rdataset_disassociate(&val->frdataset);
|
||||
if (val->keyset != &val->frdataset) {
|
||||
dns_rdataset_cleanup(&val->frdataset);
|
||||
}
|
||||
dns_rdataset_cleanup(&val->fsigrdataset);
|
||||
|
||||
|
|
|
|||
|
|
@ -915,10 +915,8 @@ db_find:
|
|||
}
|
||||
|
||||
cleanup:
|
||||
if (dns_rdataset_isassociated(&zrdataset)) {
|
||||
dns_rdataset_disassociate(&zrdataset);
|
||||
dns_rdataset_cleanup(&zsigrdataset);
|
||||
}
|
||||
dns_rdataset_cleanup(&zrdataset);
|
||||
dns_rdataset_cleanup(&zsigrdataset);
|
||||
|
||||
if (zdb != NULL) {
|
||||
if (znode != NULL) {
|
||||
|
|
@ -1137,10 +1135,9 @@ db_find:
|
|||
|
||||
finish:
|
||||
if (use_zone) {
|
||||
if (dns_rdataset_isassociated(rdataset)) {
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
dns_rdataset_cleanup(sigrdataset);
|
||||
}
|
||||
dns_rdataset_cleanup(rdataset);
|
||||
dns_rdataset_cleanup(sigrdataset);
|
||||
|
||||
dns_name_copy(zfname, fname);
|
||||
if (dcname != NULL) {
|
||||
dns_name_copy(zfname, dcname);
|
||||
|
|
@ -1171,10 +1168,9 @@ finish:
|
|||
}
|
||||
|
||||
cleanup:
|
||||
if (dns_rdataset_isassociated(&zrdataset)) {
|
||||
dns_rdataset_disassociate(&zrdataset);
|
||||
dns_rdataset_cleanup(&zsigrdataset);
|
||||
}
|
||||
dns_rdataset_cleanup(&zrdataset);
|
||||
dns_rdataset_cleanup(&zsigrdataset);
|
||||
|
||||
if (db != NULL) {
|
||||
dns_db_detach(&db);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21347,11 +21347,9 @@ zone_rekey(dns_zone_t *zone) {
|
|||
/* Get the current CDS rdataset */
|
||||
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_cds,
|
||||
dns_rdatatype_none, 0, &cdsset, NULL);
|
||||
if (result != ISC_R_SUCCESS && dns_rdataset_isassociated(&cdsset)) {
|
||||
dns_rdataset_disassociate(&cdsset);
|
||||
} else if (result == ISC_R_SUCCESS && kasp != NULL &&
|
||||
ttl != cdsset.ttl && !offlineksk)
|
||||
{
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_rdataset_cleanup(&cdsset);
|
||||
} else if (kasp != NULL && ttl != cdsset.ttl && !offlineksk) {
|
||||
update_ttl(&cdsset, &zone->origin, ttl, &diff);
|
||||
dnssec_log(zone, ISC_LOG_INFO, "Updating CDS TTL from %u to %u",
|
||||
cdsset.ttl, ttl);
|
||||
|
|
@ -21361,11 +21359,9 @@ zone_rekey(dns_zone_t *zone) {
|
|||
/* Get the current CDNSKEY rdataset */
|
||||
result = dns_db_findrdataset(db, node, ver, dns_rdatatype_cdnskey,
|
||||
dns_rdatatype_none, 0, &cdnskeyset, NULL);
|
||||
if (result != ISC_R_SUCCESS && dns_rdataset_isassociated(&cdnskeyset)) {
|
||||
dns_rdataset_disassociate(&cdnskeyset);
|
||||
} else if (result == ISC_R_SUCCESS && kasp != NULL &&
|
||||
ttl != cdnskeyset.ttl && !offlineksk)
|
||||
{
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
dns_rdataset_cleanup(&cdnskeyset);
|
||||
} else if (kasp != NULL && ttl != cdnskeyset.ttl && !offlineksk) {
|
||||
update_ttl(&cdnskeyset, &zone->origin, ttl, &diff);
|
||||
dnssec_log(zone, ISC_LOG_INFO,
|
||||
"Updating CDNSKEY TTL from %u to %u", cdnskeyset.ttl,
|
||||
|
|
|
|||
|
|
@ -299,11 +299,9 @@ check_no_rrsig(const vctx_t *vctx, const dns_rdataset_t *rdataset,
|
|||
const dns_name_t *name, dns_dbnode_t *node) {
|
||||
char namebuf[DNS_NAME_FORMATSIZE];
|
||||
char typebuf[DNS_RDATATYPE_FORMATSIZE];
|
||||
dns_rdataset_t sigrdataset = DNS_RDATASET_INIT;
|
||||
dns_rdatasetiter_t *rdsiter = NULL;
|
||||
isc_result_t result;
|
||||
|
||||
dns_rdataset_init(&sigrdataset);
|
||||
result = dns_db_allrdatasets(vctx->db, node, vctx->ver, 0, 0, &rdsiter);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
zoneverify_log_error(vctx, "dns_db_allrdatasets(): %s",
|
||||
|
|
@ -311,10 +309,12 @@ check_no_rrsig(const vctx_t *vctx, const dns_rdataset_t *rdataset,
|
|||
return result;
|
||||
}
|
||||
DNS_RDATASETITER_FOREACH(rdsiter) {
|
||||
dns_rdataset_t sigrdataset = DNS_RDATASET_INIT;
|
||||
dns_rdatasetiter_current(rdsiter, &sigrdataset);
|
||||
if (sigrdataset.type == dns_rdatatype_rrsig &&
|
||||
sigrdataset.covers == rdataset->type)
|
||||
{
|
||||
dns_rdataset_disassociate(&sigrdataset);
|
||||
dns_name_format(name, namebuf, sizeof(namebuf));
|
||||
dns_rdatatype_format(rdataset->type, typebuf,
|
||||
sizeof(typebuf));
|
||||
|
|
@ -327,7 +327,6 @@ check_no_rrsig(const vctx_t *vctx, const dns_rdataset_t *rdataset,
|
|||
}
|
||||
dns_rdataset_disassociate(&sigrdataset);
|
||||
}
|
||||
dns_rdataset_cleanup(&sigrdataset);
|
||||
dns_rdatasetiter_destroy(&rdsiter);
|
||||
|
||||
return ISC_R_SUCCESS;
|
||||
|
|
|
|||
|
|
@ -1693,10 +1693,8 @@ query_additionalauthfind(dns_db_t *db, dns_dbversion_t *version,
|
|||
/*
|
||||
* Do not return signatures if the zone is not fully signed.
|
||||
*/
|
||||
if (sigrdataset != NULL && !dns_db_issecure(db) &&
|
||||
dns_rdataset_isassociated(sigrdataset))
|
||||
{
|
||||
dns_rdataset_disassociate(sigrdataset);
|
||||
if (!dns_db_issecure(db)) {
|
||||
dns_rdataset_cleanup(sigrdataset);
|
||||
}
|
||||
|
||||
*nodep = node;
|
||||
|
|
@ -2029,7 +2027,7 @@ found:
|
|||
if (result == DNS_R_NCACHENXDOMAIN) {
|
||||
goto addname;
|
||||
} else if (result == DNS_R_NCACHENXRRSET) {
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
dns_rdataset_cleanup(rdataset);
|
||||
dns_rdataset_cleanup(sigrdataset);
|
||||
} else if (result == ISC_R_SUCCESS) {
|
||||
bool invalid = false;
|
||||
|
|
@ -2044,7 +2042,7 @@ found:
|
|||
sigrdataset);
|
||||
}
|
||||
if (invalid && DNS_TRUST_PENDING(rdataset->trust)) {
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
dns_rdataset_cleanup(rdataset);
|
||||
dns_rdataset_cleanup(sigrdataset);
|
||||
} else if (!query_isduplicate(client, fname,
|
||||
dns_rdatatype_a, &mname))
|
||||
|
|
@ -2070,7 +2068,7 @@ found:
|
|||
}
|
||||
rdataset = ns_client_newrdataset(client);
|
||||
} else {
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
dns_rdataset_cleanup(rdataset);
|
||||
dns_rdataset_cleanup(sigrdataset);
|
||||
}
|
||||
}
|
||||
|
|
@ -2085,7 +2083,7 @@ found:
|
|||
if (result == DNS_R_NCACHENXDOMAIN) {
|
||||
goto addname;
|
||||
} else if (result == DNS_R_NCACHENXRRSET) {
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
dns_rdataset_cleanup(rdataset);
|
||||
dns_rdataset_cleanup(sigrdataset);
|
||||
} else if (result == ISC_R_SUCCESS) {
|
||||
bool invalid = false;
|
||||
|
|
@ -2102,7 +2100,7 @@ found:
|
|||
}
|
||||
|
||||
if (invalid && DNS_TRUST_PENDING(rdataset->trust)) {
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
dns_rdataset_cleanup(rdataset);
|
||||
dns_rdataset_cleanup(sigrdataset);
|
||||
} else if (!query_isduplicate(client, fname,
|
||||
dns_rdatatype_aaaa,
|
||||
|
|
@ -2933,10 +2931,8 @@ rpz_clean(dns_zone_t **zonep, dns_db_t **dbp, dns_dbnode_t **nodep,
|
|||
if (zonep != NULL && *zonep != NULL) {
|
||||
dns_zone_detach(zonep);
|
||||
}
|
||||
if (rdatasetp != NULL && *rdatasetp != NULL &&
|
||||
dns_rdataset_isassociated(*rdatasetp))
|
||||
{
|
||||
dns_rdataset_disassociate(*rdatasetp);
|
||||
if (rdatasetp != NULL) {
|
||||
dns_rdataset_cleanup(*rdatasetp);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -4588,7 +4584,7 @@ again:
|
|||
if (found != NULL && optout &&
|
||||
dns_name_issubdomain(&name, dns_db_origin(db)))
|
||||
{
|
||||
dns_rdataset_disassociate(rdataset);
|
||||
dns_rdataset_cleanup(rdataset);
|
||||
dns_rdataset_cleanup(sigrdataset);
|
||||
skip++;
|
||||
dns_name_getlabelsequence(qname, skip, labels - skip,
|
||||
|
|
|
|||
Loading…
Reference in a new issue