Files
bind9/lib/dns
Michał Kępień 2a3b6d1406 Fix reference counting in do_nsfetch()
Each function queuing a do_nsfetch() call using isc_async_run() is
expected to increase the given zone's internal reference count
(zone->irefs), which is then correspondingly decreased in either
do_nsfetch() itself (when the dns_resolver_createfetch() fails) or in
nsfetch_done() (when recursion is finished).

However, do_nsfetch() can also return early if either the zone itself or
the relevant view's resolver object is being shut down.  In that case,
do_nsfetch() simply returns without decreasing the internal reference
count for the zone.  This leaves a dangling zone reference around, which
leads to hangs during named shutdown.

Fix by executing the same cleanup code for early returns from
do_nsfetch() as for a failed dns_resolver_createfetch() call in that
function as the reference count will not be decreased in nsfetch_done()
in any of these cases.
2023-12-18 11:33:43 +01:00
..
2023-10-13 14:44:40 +02:00
2023-12-06 17:31:38 -08:00
2023-09-12 16:14:10 +02:00
2023-08-31 22:08:35 +02:00
2023-08-31 22:08:35 +02:00
2023-10-10 16:57:18 +02:00
2023-09-12 16:14:10 +02:00
2023-10-13 09:57:28 +00:00
2023-12-11 21:01:29 +00:00
2023-12-07 02:59:04 +00:00
2023-08-31 22:08:35 +02:00
2023-10-09 13:29:02 -07:00
2023-08-31 22:08:35 +02:00
2023-10-13 14:44:40 +02:00
2023-11-21 14:48:43 +11:00
2023-12-18 11:33:43 +01:00