]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Make sure catz->catzs isn't destroyed before catz
authorAram Sargsyan <aram@isc.org>
Fri, 24 Feb 2023 19:17:09 +0000 (19:17 +0000)
committerAram Sargsyan <aram@isc.org>
Fri, 24 Feb 2023 19:40:34 +0000 (19:40 +0000)
Call dns_catz_unref_catzs() only after detaching 'catz'.

lib/dns/catz.c

index b90fcd277c46f1c71e80168de4395fe2f7ac60d7..7e28528f57113fb1b203ec1937cbf1995da8e489 100644 (file)
@@ -844,14 +844,16 @@ dns__catz_timer_start(dns_catz_zone_t *catz) {
 static void
 dns__catz_timer_stop(void *arg) {
        dns_catz_zone_t *catz = arg;
+       dns_catz_zones_t *catzs = NULL;
        REQUIRE(DNS_CATZ_ZONE_VALID(catz));
 
        isc_timer_stop(catz->updatetimer);
        isc_timer_destroy(&catz->updatetimer);
        catz->loop = NULL;
+       catzs = catz->catzs;
 
-       dns_catz_unref_catzs(catz->catzs);
        dns_catz_detach_catz(&catz);
+       dns_catz_unref_catzs(catzs);
 }
 
 isc_result_t