about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-01-16 10:20:55 +0100
committerptitSeb <sebastien.chev@gmail.com>2024-01-16 10:20:55 +0100
commit50242c6eaa8242dcefda034c555ad9496d3c9412 (patch)
tree92cd81edda992b11da08d14abffcc43801b2965f /src
parente5649d90e7deb3e7388475d62f4174b4bd64063f (diff)
downloadbox64-50242c6eaa8242dcefda034c555ad9496d3c9412.tar.gz
box64-50242c6eaa8242dcefda034c555ad9496d3c9412.zip
Ficxed an issue with rbtree rb_get_end utility function
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;