Commit e9eeeda6 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 dea18474
......@@ -817,6 +817,7 @@ 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 +835,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