diff --git a/CHANGES b/CHANGES index 35f1a27e0c..b9e894a745 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +2374. [bug] "blackhole" ACLs could cause named to segfault due + to some uninitialized memory. [RT #18095] + 2373. [bug] Default values of zone ACLs were re-parsed each time a new zone was configured, causing an overconsumption of memory. [RT #18092] diff --git a/lib/isc/radix.c b/lib/isc/radix.c index c6178c06f7..ee0c815811 100644 --- a/lib/isc/radix.c +++ b/lib/isc/radix.c @@ -14,7 +14,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: radix.c,v 1.13 2008/01/27 23:47:20 tbox Exp $ */ +/* $Id: radix.c,v 1.14 2008/05/21 23:21:33 each Exp $ */ /* * This source was adapted from MRT's RCS Ids: @@ -323,6 +323,7 @@ isc_radix_insert(isc_radix_tree_t *radix, isc_radix_node_t **target, if (node == NULL) return (ISC_R_NOMEMORY); node->bit = bitlen; + node->node_num[0] = node->node_num[1] = -1; result = _ref_prefix(radix->mctx, &node->prefix, prefix); if (result != ISC_R_SUCCESS) { isc_mem_put(radix->mctx, node, @@ -351,7 +352,6 @@ isc_radix_insert(isc_radix_tree_t *radix, isc_radix_node_t **target, } else { node->node_num[ISC_IS6(family)] = ++radix->num_added_node; - node->node_num[!ISC_IS6(family)] = -1; node->data[0] = NULL; node->data[1] = NULL; }