2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 05:57:52 +00:00

Revert "qpzone find() function could set foundname incorrectly"

This reverts commit dd1050e938243d07dc4741164884c08f30400ae3.
This commit is contained in:
Michał Kępień 2025-05-06 09:14:18 +02:00
parent e6a9a68f42
commit d0e0706797
No known key found for this signature in database

View File

@ -3365,8 +3365,10 @@ find(dns_db_t *db, const dns_name_t *name, dns_dbversion_t *version,
if (tresult != DNS_R_CONTINUE) {
result = tresult;
search.chain.len = i - 1;
dns_name_copy(&n->name, foundname);
node = n;
if (foundname != NULL) {
dns_name_copy(&node->name, foundname);
}
}
}
@ -3635,20 +3637,12 @@ found:
/*
* We have an exact match for the name, but there are no
* active rdatasets in the desired version. That means that
* this node doesn't exist in the desired version.
* If there's a node above this one, reassign the
* foundname to the parent and treat this as a partial
* match.
* this node doesn't exist in the desired version, and that
* we really have a partial match.
*/
if (!wild) {
unsigned int len = search.chain.len - 1;
if (len > 0) {
NODE_UNLOCK(nlock, &nlocktype);
dns_qpchain_node(&search.chain, len - 1, NULL,
(void **)&node, NULL);
dns_name_copy(&node->name, foundname);
goto partial_match;
}
NODE_UNLOCK(nlock, &nlocktype);
goto partial_match;
}
}