54 lines
1.9 KiB
Diff
54 lines
1.9 KiB
Diff
|
|
From 4093efc900e250a39f9669e3d740a4286a0edb9c Mon Sep 17 00:00:00 2001
|
||
|
|
From: Mark Andrews <marka@isc.org>
|
||
|
|
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
|
||
|
|
|