From 53800281fea22b2b32cec64e2e9174016581a2a9 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Thu, 1 Aug 2019 09:30:49 +1000 Subject: [PATCH] maintain a reference to 'rpz' when calling rpz.c:update_quantum --- lib/dns/rpz.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/dns/rpz.c b/lib/dns/rpz.c index d47a8bd0fd..b5763fab0a 100644 --- a/lib/dns/rpz.c +++ b/lib/dns/rpz.c @@ -169,6 +169,9 @@ struct dns_rpz_nm_data { dns_rpz_nm_zbits_t wild; }; +static void +rpz_detach(dns_rpz_zone_t **rpzp, dns_rpz_zones_t *rpzs); + #if 0 /* * Catch a name while debugging. @@ -1980,6 +1983,7 @@ update_quantum(isc_task_t *task, isc_event_t *event) { isc_ht_destroy(&rpz->newnodes); dns_db_closeversion(rpz->updb, &rpz->updbversion, false); dns_db_detach(&rpz->updb); + rpz_detach(&rpz, rpz->rpzs); } static void @@ -1994,6 +1998,7 @@ dns_rpz_update_from_db(dns_rpz_zone_t *rpz) { REQUIRE(rpz->updbit == NULL); REQUIRE(rpz->newnodes == NULL); + isc_refcount_increment(&rpz->refs); dns_db_attach(rpz->db, &rpz->updb); rpz->updbversion = rpz->dbversion; rpz->dbversion = NULL; @@ -2018,6 +2023,7 @@ dns_rpz_update_from_db(dns_rpz_zone_t *rpz) { isc_ht_destroy(&rpz->newnodes); dns_db_closeversion(rpz->updb, &rpz->updbversion, false); dns_db_detach(&rpz->updb); + rpz_detach(&rpz, rpz->rpzs); } /*