]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Add isc_refcount_destroy() as appropriate
authorOndřej Surý <ondrej@sury.org>
Tue, 23 Jul 2019 12:27:30 +0000 (08:27 -0400)
committerOndřej Surý <ondrej@sury.org>
Tue, 14 Jan 2020 12:12:13 +0000 (13:12 +0100)
13 files changed:
lib/dns/cache.c
lib/dns/dispatch.c
lib/dns/master.c
lib/dns/masterdump.c
lib/dns/sdb.c
lib/dns/sdlz.c
lib/dns/stats.c
lib/dns/tsig.c
lib/isc/stats.c
lib/isc/task.c
lib/ns/client.c
lib/ns/interfacemgr.c
lib/ns/lib.c

index df7184c667e0702688f3ef1dab0c2444e5afd424..f20c1de8a643aa9470315b15e77105eb3451a5c9 100644 (file)
@@ -314,8 +314,6 @@ cleanup_filelock:
 
 static void
 cache_free(dns_cache_t *cache) {
-       int i;
-
        REQUIRE(VALID_CACHE(cache));
 
        isc_refcount_destroy(&cache->references);
@@ -359,10 +357,9 @@ cache_free(dns_cache_t *cache) {
                if (strcmp(cache->db_type, "rbt") == 0) {
                        extra = 1;
                }
-               for (i = extra; i < cache->db_argc; i++) {
+               for (int i = extra; i < cache->db_argc; i++) {
                        if (cache->db_argv[i] != NULL) {
-                               isc_mem_free(cache->mctx,
-                                            cache->db_argv[i]);
+                               isc_mem_free(cache->mctx, cache->db_argv[i]);
                        }
                }
                isc_mem_put(cache->mctx, cache->db_argv,
index c70ee9fa2515155603293c506e086dba59f020ca..47ff2bc9bc00faed7b4a897a6bfcce34b53c0194 100644 (file)
@@ -598,8 +598,7 @@ deref_portentry(dns_dispatch_t *disp, dispportentry_t **portentryp) {
        dns_qid_t *qid;
 
        REQUIRE(disp->port_table != NULL);
-       REQUIRE(portentry != NULL &&
-               isc_refcount_current(&portentry->refs) > 0);
+       REQUIRE(portentry != NULL);
 
        if (isc_refcount_decrement(&portentry->refs) == 1) {
                qid = DNS_QID(disp);
@@ -617,7 +616,6 @@ deref_portentry(dns_dispatch_t *disp, dispportentry_t **portentryp) {
         * dispsock->portentry does not change in socket_search.
         */
        *portentryp = NULL;
-
 }
 
 /*%
index fbb13389e127af5189105fa7eb3231d3e5091a23..e7ccc0e04b2c3478bd8f92df51539d4cf3bf89f4 100644 (file)
@@ -431,16 +431,17 @@ incctx_destroy(isc_mem_t *mctx, dns_incctx_t *ictx) {
 
 static void
 loadctx_destroy(dns_loadctx_t *lctx) {
-       isc_result_t result;
-
        REQUIRE(DNS_LCTX_VALID(lctx));
 
+       isc_refcount_destroy(&lctx->references);
+
        lctx->magic = 0;
-       if (lctx->inc != NULL)
+       if (lctx->inc != NULL) {
                incctx_destroy(lctx->mctx, lctx->inc);
+       }
 
        if (lctx->f != NULL) {
-               result = isc_stdio_close(lctx->f);
+               isc_result_t result = isc_stdio_close(lctx->f);
                if (result != ISC_R_SUCCESS) {
                        UNEXPECTED_ERROR(__FILE__, __LINE__,
                                         "isc_stdio_close() failed: %s",
@@ -449,8 +450,9 @@ loadctx_destroy(dns_loadctx_t *lctx) {
        }
 
        /* isc_lex_destroy() will close all open streams */
-       if (lctx->lex != NULL && !lctx->keep_lex)
+       if (lctx->lex != NULL && !lctx->keep_lex) {
                isc_lex_destroy(&lctx->lex);
+       }
 
        if (lctx->task != NULL) {
                isc_task_detach(&lctx->task);
index f8c3b122062af8a157f72af9e13d73288f298b23..662652bf8a672a99a08de4fb6f2462f26eab6505 100644 (file)
@@ -234,7 +234,7 @@ struct dns_dumpctx {
        unsigned int            nodes;
        /* dns_master_dumpinc() */
        char                    *file;
-       char                    *tmpfile;
+       char                    *tmpfile;
        dns_masterformat_t      format;
        dns_masterrawheader_t   header;
        isc_result_t            (*dumpsets)(isc_mem_t *mctx,
index 64f0112218efe1425a3eeb94b9db6a73e0e6d5ff..fa30944450ffa5bd11a7170f830ff3ad0aa114d5 100644 (file)
@@ -517,6 +517,8 @@ static void
 destroy(dns_sdb_t *sdb) {
        dns_sdbimplementation_t *imp = sdb->implementation;
 
+       isc_refcount_destroy(&sdb->references);
+
        if (imp->methods->destroy != NULL) {
                MAYBE_LOCK(sdb);
                imp->methods->destroy(sdb->zone, imp->driverdata,
index ae35ac5ae3969e1bafc026e8e66fdd6905fb59c2..3fa7f5bc5dc3a0fd4d173d7d8b2ae0327b66623d 100644 (file)
@@ -480,6 +480,8 @@ destroynode(dns_sdlznode_t *node) {
        dns_db_t *db;
        isc_mem_t *mctx;
 
+       isc_refcount_destroy(&node->references);
+
        sdlz = node->sdlz;
        mctx = sdlz->common.mctx;
 
@@ -504,7 +506,6 @@ destroynode(dns_sdlznode_t *node) {
                dns_name_free(node->name, mctx);
                isc_mem_put(mctx, node->name, sizeof(dns_name_t));
        }
-       isc_refcount_destroy(&node->references);
 
        node->magic = 0;
        isc_mem_put(mctx, node, sizeof(dns_sdlznode_t));
index 11d30e90eb867810dece6f305f4a59b3be404a31..c05e287dc1de41eb42568da95f8a3e2809ef2770 100644 (file)
@@ -125,6 +125,7 @@ dns_stats_detach(dns_stats_t **statsp) {
        *statsp = NULL;
 
        if (isc_refcount_decrement(&stats->references) == 1) {
+               isc_refcount_destroy(&stats->references);
                isc_stats_detach(&stats->counters);
                isc_mem_putanddetach(&stats->mctx, stats, sizeof(*stats));
        }
index 6fa7dd4b4a85488ff02721ba51b0dd69c495f8ff..71f8f19998594da73cb3928c8192b53ca9624172 100644 (file)
@@ -431,6 +431,7 @@ cleanup_ring(dns_tsig_keyring_t *ring)
 
 static void
 destroyring(dns_tsig_keyring_t *ring) {
+       isc_refcount_destroy(&ring->references);
        dns_rbt_destroy(&ring->keys);
        isc_rwlock_destroy(&ring->lock);
        isc_mem_putanddetach(&ring->mctx, ring, sizeof(dns_tsig_keyring_t));
@@ -614,14 +615,16 @@ dns_tsigkeyring_dumpanddetach(dns_tsig_keyring_t **ringp, FILE *fp) {
                node = NULL;
                dns_rbtnodechain_current(&chain, &foundname, origin, &node);
                tkey = node->data;
-               if (tkey != NULL && tkey->generated && tkey->expire >= now)
+               if (tkey != NULL && tkey->generated && tkey->expire >= now) {
                        dump_key(tkey, fp);
+               }
                result = dns_rbtnodechain_next(&chain, &foundname,
                                               origin);
                if (result != ISC_R_SUCCESS && result != DNS_R_NEWORIGIN) {
                        dns_rbtnodechain_invalidate(&chain);
-                       if (result == ISC_R_NOMORE)
+                       if (result == ISC_R_NOMORE) {
                                result = ISC_R_SUCCESS;
+                       }
                        goto destroy;
                }
        }
index 4f7f283b2fc45ab35ac355d46a33a7b6f27890d2..7a4f38c9b89f8e35962ca41a9163d9874f41c35c 100644 (file)
@@ -82,6 +82,7 @@ isc_stats_detach(isc_stats_t **statsp) {
        *statsp = NULL;
 
        if (isc_refcount_decrement(&stats->references) == 1) {
+               isc_refcount_destroy(&stats->references);
                isc_mem_put(stats->mctx, stats->counters,
                            sizeof(isc__atomic_statcounter_t) *
                                stats->ncounters);
index 7ec362024cb294e428e68e5a9001f5d9375eaae0..33114993d42baca2c86f616cf602e55fe0d31ade 100644 (file)
@@ -238,11 +238,12 @@ task_finished(isc__task_t *task) {
        REQUIRE(EMPTY(task->events));
        REQUIRE(task->nevents == 0);
        REQUIRE(EMPTY(task->on_shutdown));
-       REQUIRE(atomic_load(&task->references) == 0);
        REQUIRE(task->state == task_state_done);
 
        XTRACE("task_finished");
 
+       isc_refcount_destroy(&task->references);
+
        LOCK(&manager->lock);
        UNLINK(manager->tasks, task, link);
        atomic_fetch_sub(&manager->tasks_count, 1);
index c178c043c6012c9d1e9a43bb04305cf81d53c9dc..40d50b9c1d3710b70c357a5c62e6165d39814912 100644 (file)
@@ -2358,9 +2358,7 @@ clientmgr_attach(ns_clientmgr_t *source, ns_clientmgr_t **targetp) {
 static void
 clientmgr_detach(ns_clientmgr_t **mp) {
        ns_clientmgr_t *mgr = *mp;
-       int32_t oldrefs;
-       oldrefs = isc_refcount_decrement(&mgr->references);
-       INSIST(oldrefs > 0);
+       int32_t oldrefs = isc_refcount_decrement(&mgr->references);
 
        isc_log_write(ns_lctx, NS_LOGCATEGORY_CLIENT,
                      NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(3),
@@ -2380,6 +2378,7 @@ clientmgr_destroy(ns_clientmgr_t *manager) {
 
        MTRACE("clientmgr_destroy");
 
+       isc_refcount_destroy(&manager->references);
        manager->magic = 0;
 
 #if CLIENT_NMCTXS > 0
index 60f916de48ead606d990ae55c7b30b254c0d681a..34a16be604c20eb6caa12659780c03c40778d71d 100644 (file)
@@ -300,6 +300,8 @@ static void
 ns_interfacemgr_destroy(ns_interfacemgr_t *mgr) {
        REQUIRE(NS_INTERFACEMGR_VALID(mgr));
 
+       isc_refcount_destroy(&mgr->references);
+
 #ifdef USE_ROUTE_SOCKET
        if (mgr->route != NULL)
                isc_socket_detach(&mgr->route);
index c4c3fe62663ec8d00b9ba6fee147a1e8e0dcf408..8e49693eb58fff27ec552012f98f5e0e922b2ddd 100644 (file)
@@ -76,6 +76,7 @@ ns_lib_init(void) {
 void
 ns_lib_shutdown(void) {
        if (isc_refcount_decrement(&references) == 1) {
+               isc_refcount_destroy(&references);
                if (ns_g_mctx != NULL) {
                        isc_mem_detach(&ns_g_mctx);
                }