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