Commit e4ffd19b authored by Ondřej Surý's avatar Ondřej Surý Committed by Mark Andrews
Browse files

Destroy task first when destroying catzs.

When freeing catzs structures we need to kill the updater task first.
Otherwise we might race with the updater and there might be a crash
on shutdown.

(cherry picked from commit c1d111cd)
parent 2087adec
......@@ -817,6 +817,8 @@ dns_catz_catzs_detach(dns_catz_zones_t ** catzsp) {
isc_refcount_decrement(&catzs->refs, &refs);
if (refs == 0) {
isc_task_destroy(&catzs->updater);
DESTROYLOCK(&catzs->lock);
if (catzs->zones != NULL) {
result = isc_ht_iter_create(catzs->zones, &iter);
......@@ -834,7 +836,6 @@ dns_catz_catzs_detach(dns_catz_zones_t ** catzsp) {
isc_ht_destroy(&catzs->zones);
}
isc_refcount_destroy(&catzs->refs);
isc_task_destroy(&catzs->updater);
isc_mem_putanddetach(&catzs->mctx, catzs, sizeof(*catzs));
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment