From 4093efc900e250a39f9669e3d740a4286a0edb9c Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Tue, 31 Jul 2018 17:41:45 +1000 Subject: [PATCH 2497/3677] refcount errors on error paths --- lib/dns/rbtdb.c | 3 --- lib/dns/view.c | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c index e332802..01c7cd8 100644 --- a/lib/dns/rbtdb.c +++ b/lib/dns/rbtdb.c @@ -8368,7 +8368,6 @@ dns_rbtdb_create(isc_mem_t *mctx, const dns_name_t *origin, dns_dbtype_t type, if (result != ISC_R_SUCCESS) { while (i-- > 0) { NODE_DESTROYLOCK(&rbtdb->node_locks[i].lock); - isc_refcount_decrement(&rbtdb->node_locks[i].references, NULL); isc_refcount_destroy(&rbtdb->node_locks[i].references); } goto cleanup_deadnodes; @@ -8491,7 +8490,6 @@ dns_rbtdb_create(isc_mem_t *mctx, const dns_name_t *origin, dns_dbtype_t type, rbtdb->current_version = allocate_version(mctx, 1, 1, ISC_FALSE); if (rbtdb->current_version == NULL) { isc_refcount_decrement(&rbtdb->references, NULL); - isc_refcount_destroy(&rbtdb->references); free_rbtdb(rbtdb, ISC_FALSE, NULL); return (ISC_R_NOMEMORY); } @@ -8513,7 +8511,6 @@ dns_rbtdb_create(isc_mem_t *mctx, const dns_name_t *origin, dns_dbtype_t type, sizeof(*rbtdb->current_version)); rbtdb->current_version = NULL; isc_refcount_decrement(&rbtdb->references, NULL); - isc_refcount_destroy(&rbtdb->references); free_rbtdb(rbtdb, ISC_FALSE, NULL); return (result); } diff --git a/lib/dns/view.c b/lib/dns/view.c index e36576f..7751535 100644 --- a/lib/dns/view.c +++ b/lib/dns/view.c @@ -311,6 +311,7 @@ dns_view_create(isc_mem_t *mctx, dns_rdataclass_t rdclass, dns_tsigkeyring_detach(&view->dynamickeys); cleanup_references: + isc_refcount_decrement(&view->references, NULL); isc_refcount_destroy(&view->references); cleanup_fwdtable: -- 1.8.3.1