diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/rbtree.c | 7 |
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; |