BIND 10 trac2090, updated. 09dd3c3bfbea07a37971985f773235872d5a9057 [2090] Fix segfault

BIND 10 source code commits bind10-changes at lists.isc.org
Fri Jul 20 09:16:01 UTC 2012


The branch, trac2090 has been updated
       via  09dd3c3bfbea07a37971985f773235872d5a9057 (commit)
      from  be46391e9694530d17277ebb5dea84f2d2616604 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 09dd3c3bfbea07a37971985f773235872d5a9057
Author: Michal 'vorner' Vaner <michal.vaner at nic.cz>
Date:   Fri Jul 20 11:09:51 2012 +0200

    [2090] Fix segfault
    
    The (left|right)Rotate might have changed the parent, so it needs to be
    reacquired after it.

-----------------------------------------------------------------------

Summary of changes:
 src/lib/datasrc/rbtree.h |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/rbtree.h b/src/lib/datasrc/rbtree.h
index 90e9d0f..3ff3833 100644
--- a/src/lib/datasrc/rbtree.h
+++ b/src/lib/datasrc/rbtree.h
@@ -1491,8 +1491,8 @@ RBTree<T>::insertRebalance(typename RBNode<T>::RBNodePtr* root,
             } else {
                 if (node == parent->getRight()) {
                     node = parent;
-                    parent = node->getParent();
                     leftRotate(root, node);
+                    parent = node->getParent();
                 }
                 parent->color_ = RBNode<T>::BLACK;
                 parent->getParent()->color_ = RBNode<T>::RED;
@@ -1508,8 +1508,8 @@ RBTree<T>::insertRebalance(typename RBNode<T>::RBNodePtr* root,
             } else {
                 if (node == parent->getLeft()) {
                     node = parent;
-                    parent = node->getParent();
                     rightRotate(root, node);
+                    parent = node->getParent();
                 }
                 parent->color_ = RBNode<T>::BLACK;
                 parent->getParent()->color_ = RBNode<T>::RED;



More information about the bind10-changes mailing list