about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tools/rbtree.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/tools/rbtree.c b/src/tools/rbtree.c
index 12adcd16..1fa08b71 100644
--- a/src/tools/rbtree.c
+++ b/src/tools/rbtree.c
@@ -568,12 +568,13 @@ uint32_t rb_get(rbtree *tree, uintptr_t addr) {
 int rb_get_end(rbtree* tree, uintptr_t addr, uint32_t* val, uintptr_t* end) {
     rbnode *node = tree->root, *next = NULL;
     while (node) {
-        if (node->end <= addr) {
-            node = node->right;
-        } else if (node->start <= addr) {
+        if ((node->start <= addr) && (node->end > addr)) {
             *val = node->data;
             *end = node->end;
             return 1;
+        }
+        if (node->end <= addr) {
+            node = node->right;
         } else {
             next = node;
             node = node->left;