Commit c1d111cd authored by Ondřej Surý's avatar Ondřej Surý
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.
parent 541872bf
......@@ -795,7 +795,7 @@ dns_catz_catzs_detach(dns_catz_zones_t **catzsp) {
*catzsp = NULL;
if (isc_refcount_decrement(&catzs->refs) == 1) {
isc_refcount_destroy(&catzs->refs);
isc_task_destroy(&catzs->updater);
DESTROYLOCK(&catzs->lock);
if (catzs->zones != NULL) {
isc_ht_iter_t *iter = NULL;
......@@ -815,7 +815,7 @@ dns_catz_catzs_detach(dns_catz_zones_t **catzsp) {
INSIST(isc_ht_count(catzs->zones) == 0);
isc_ht_destroy(&catzs->zones);
}
isc_task_destroy(&catzs->updater);
isc_refcount_destroy(&catzs->refs);
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