From 38566444d45fb6321e018e2389562bb4b86b6d6b Mon Sep 17 00:00:00 2001
From: Takuya ASADA <syuu@cloudius-systems.com>
Date: Sat, 18 Jan 2014 16:52:30 +0900
Subject: [PATCH] elf: fix object::lookup_addr to lookup correct symbol

Fix object::lookup_addr to lookup correct symbol.
It should returns the nearest symbol which is s_addr < addr, but it
compares opposite way.

Signed-off-by: Takuya ASADA <syuu@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
---
 core/elf.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/core/elf.cc b/core/elf.cc
index 7378af41c..957ae0a36 100644
--- a/core/elf.cc
+++ b/core/elf.cc
@@ -635,10 +635,10 @@ dladdr_info object::lookup_addr(const void* addr)
         }
         symbol_module sm{&sym, this};
         auto s_addr = sm.relocated_addr();
-        if (s_addr < addr) {
+        if (s_addr > addr) {
             continue;
         }
-        if (!best.symbol || sm.relocated_addr() < best.relocated_addr()) {
+        if (!best.symbol || sm.relocated_addr() > best.relocated_addr()) {
             best = sm;
         }
     }
-- 
GitLab