mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-27 12:13:20 -04:00
In dbiterator_prev, dereference_iter_node was being called too soon
dns_rbtnodechain_prev requires the current node to still be valid
which was not always the case after dereference_iter_node was called.
Move the call to dereference_iter_node to after the dns_rbtnodechain_prev
to preserve the node.
(cherry picked from commit b677d31fca)
This commit is contained in:
parent
e1cb1be33d
commit
7708678482
1 changed files with 3 additions and 2 deletions
|
|
@ -9582,11 +9582,12 @@ dbiterator_prev(dns_dbiterator_t *iterator) {
|
|||
resume_iteration(rbtdbiter);
|
||||
}
|
||||
|
||||
dereference_iter_node(rbtdbiter);
|
||||
|
||||
name = dns_fixedname_name(&rbtdbiter->name);
|
||||
origin = dns_fixedname_name(&rbtdbiter->origin);
|
||||
result = dns_rbtnodechain_prev(rbtdbiter->current, name, origin);
|
||||
|
||||
dereference_iter_node(rbtdbiter);
|
||||
|
||||
if (rbtdbiter->current == &rbtdbiter->nsec3chain &&
|
||||
(result == ISC_R_SUCCESS || result == DNS_R_NEWORIGIN))
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue