From: Mukund Sivaraman Date: Fri, 6 Sep 2013 05:58:33 +0000 (+0530) Subject: [2750] Check that sub-tree roots have the flag set X-Git-Tag: bind10-1.2.0beta1-release~193^2~4^2~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0edf1c3dd2e12a28ecb74e47bdc969d6dc15fcd4;p=thirdparty%2Fkea.git [2750] Check that sub-tree roots have the flag set This did not matter during the remove() so far, but in the future we may not call exchange() even for some cases of non-leaf nodes. --- diff --git a/src/lib/datasrc/memory/domaintree.h b/src/lib/datasrc/memory/domaintree.h index 7d5bc0e542..22f30b7367 100644 --- a/src/lib/datasrc/memory/domaintree.h +++ b/src/lib/datasrc/memory/domaintree.h @@ -2950,6 +2950,15 @@ DomainTree::checkPropertiesHelper(const DomainTreeNode* node) const { } } + // If node is assigned to the down_ pointer of its parent, it is a + // subtree root and must have the flag set. + if (node->getParent() && + (node->getParent()->getDown() == node) && + (!node->isSubTreeRoot())) + { + return (false); + } + // Repeat tests with this node's children. return (checkPropertiesHelper(node->getLeft()) && checkPropertiesHelper(node->getRight()) &&