Fix dlsym and dladdr to use load_bias instead of base
Change-Id: If0f9aa944ccb1f90451aa6674428e34494331d2d
diff --git a/linker/dlfcn.c b/linker/dlfcn.c
index 07e00ac..44ab158 100644
--- a/linker/dlfcn.c
+++ b/linker/dlfcn.c
@@ -110,7 +110,7 @@
bind = ELF32_ST_BIND(sym->st_info);
if(likely((bind == STB_GLOBAL) && (sym->st_shndx != 0))) {
- unsigned ret = sym->st_value + found->base;
+ unsigned ret = sym->st_value + found->load_bias;
pthread_mutex_unlock(&dl_lock);
return (void*)ret;
}
@@ -138,14 +138,14 @@
memset(info, 0, sizeof(Dl_info));
info->dli_fname = si->name;
- info->dli_fbase = (void*)si->base;
+ info->dli_fbase = (void*)si->load_bias;
/* Determine if any symbol in the library contains the specified address */
Elf32_Sym *sym = soinfo_find_symbol(si, addr);
if(sym != NULL) {
info->dli_sname = si->strtab + sym->st_name;
- info->dli_saddr = (void*)(si->base + sym->st_value);
+ info->dli_saddr = (void*)(si->load_bias + sym->st_value);
}
ret = 1;