2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 14:35:26 +00:00

Attach to the dns_dispatchmgr in the dns_view object

The dns_dispatchmgr object was only set in the dns_view object making it
prone to use-after-free in the dns_xfrin unit when shutting down named.

Remove dns_view_setdispatchmgr() and optionally pass the dispatchmgr
directly to dns_view_create() when it is attached and not just assigned,
so the dns_dispatchmgr doesn't cease to exist too early.

The dns_view_getdnsdispatchmgr() is now protected by the RCU lock, the
dispatchmgr reference is incremented, so the caller needs to detach from
it, and the function can return NULL in case the dns_view has been
already shut down.
This commit is contained in:
Ondřej Surý
2023-08-15 17:29:27 +02:00
committed by Evan Hunt
parent cfad194e1d
commit d76ab69772
16 changed files with 90 additions and 57 deletions

View File

@@ -439,7 +439,8 @@ ns_test_qctx_create(const ns_test_qctx_create_params_t *params,
/*
* Every client needs to belong to a view.
*/
result = dns_test_makeview("view", params->with_cache, &client->view);
result = dns_test_makeview("view", false, params->with_cache,
&client->view);
if (result != ISC_R_SUCCESS) {
goto detach_client;
}