Files
bind9/lib/dns
Aram Sargsyan db45cab546 Fix a lock-order-inversion bug in resolver.c
There is a lock-order-inversion (potential deadlock) in resolver.c,
because in dns_resolver_shutdown() a resolver bucket lock is locked
while the resolver lock itself is already locked, while in
fctx_sendevents() the resolver lock is locked while a bucket lock
is locked before calling that function in fctx__done_detach().

The resolver lock/unlock in dns_resolver_shutdown() was added back in
the 317e36d47e commit to make sure that
the function is finished before the resolver object is destroyed.

Since res->exiting is atomic, it should be possible to remove the
resolver locking in dns_resolver_shutdown() and add it to the
send_shutdown_events() function which requires it.

Also, since 'res->exiting' is now set while unlocked, the 'INSIST'
in spillattimer_countdown() is wrong, and is removed.
2023-06-06 11:02:24 +00:00
..
2022-11-29 09:14:07 +01:00
2022-12-07 23:59:36 +00:00
2022-11-29 09:14:07 +01:00
2023-05-26 02:07:02 -07:00
2023-03-14 16:26:56 +11:00
2023-04-05 09:11:24 +02:00
2023-02-09 10:07:39 -08:00
2022-11-29 09:14:07 +01:00
2022-11-29 09:14:07 +01:00
2022-11-29 09:14:07 +01:00
2023-04-17 12:14:06 +02:00
2022-12-07 23:59:36 +00:00
2022-11-29 09:14:07 +01:00
2022-11-29 09:14:07 +01:00
2022-11-29 09:14:07 +01:00
2022-11-29 09:14:07 +01:00
2022-11-29 09:14:07 +01:00
2022-11-29 09:14:07 +01:00
2023-04-03 16:18:39 +00:00
2022-11-29 09:14:07 +01:00
2022-11-29 09:14:07 +01:00
2022-11-29 09:14:07 +01:00
2022-11-29 09:14:07 +01:00
2022-11-29 09:14:07 +01:00