mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 14:07:59 +00:00
Prevent check_stale_header() from leaking rdataset headers
check_stale_header() fails to update the pointer to the previous header while processing rdataset headers eligible for serve-stale, thus enabling rdataset headers to be leaked (i.e. disassociated from a node and left on the relevant TTL heap) while iterating through a node. This can lead to several different assertion failures. Add the missing pointer update.
This commit is contained in:
@@ -4494,6 +4494,7 @@ check_stale_header(dns_rbtnode_t *node, rdatasetheader_t *header,
|
||||
*/
|
||||
if (KEEPSTALE(search->rbtdb) && stale > search->now) {
|
||||
header->attributes |= RDATASET_ATTR_STALE;
|
||||
*header_prev = header;
|
||||
return ((search->options & DNS_DBFIND_STALEOK) == 0);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user