summaryrefslogtreecommitdiffstats
path: root/bind99-ISC-Bugs-35080.patch
diff options
context:
space:
mode:
Diffstat (limited to 'bind99-ISC-Bugs-35080.patch')
-rw-r--r--bind99-ISC-Bugs-35080.patch42
1 files changed, 0 insertions, 42 deletions
diff --git a/bind99-ISC-Bugs-35080.patch b/bind99-ISC-Bugs-35080.patch
deleted file mode 100644
index 14c383f..0000000
--- a/bind99-ISC-Bugs-35080.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-commit 3a2ea636103eaf40404fb82f228605d384c36434
-Author: Mark Andrews <marka@isc.org>
-Date: Tue Dec 17 09:08:59 2013 +1100
-
- 3692. [bug] Two calls to dns_db_getoriginnode were fatal if there
- was no data at the node. [RT #35080]
-
- (cherry picked from commit 161e803a5608956271d8120be37a1b383d14b647)
-
-diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c
-index 2dd4aa0..941b77e 100644
---- a/lib/dns/rbtdb.c
-+++ b/lib/dns/rbtdb.c
-@@ -1638,8 +1638,11 @@ decrement_reference(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node,
-
- nodelock = &rbtdb->node_locks[bucket];
-
-+#define KEEP_NODE(n, r) \
-+ ((n)->data != NULL || (n)->down != NULL || (n) == (r)->origin_node)
-+
- /* Handle easy and typical case first. */
-- if (!node->dirty && (node->data != NULL || node->down != NULL)) {
-+ if (!node->dirty && KEEP_NODE(node, rbtdb)) {
- dns_rbtnode_refdecrement(node, &nrefs);
- INSIST((int)nrefs >= 0);
- if (nrefs == 0) {
-@@ -1708,12 +1711,11 @@ decrement_reference(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node,
- isc_refcount_decrement(&nodelock->references, &refs);
- INSIST((int)refs >= 0);
-
-- /*
-- * XXXDCL should this only be done for cache zones?
-- */
-- if (node->data != NULL || node->down != NULL)
-+ if (KEEP_NODE(node, rbtdb))
- goto restore_locks;
-
-+#undef KEEP_NODE
-+
- if (write_locked) {
- /*
- * We can now delete the node.