about summary refs log tree commit diff stats
path: root/src/wrapped
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-01-15 11:48:58 +0100
committerptitSeb <sebastien.chev@gmail.com>2025-01-15 11:48:58 +0100
commit72df0bd1a034f0e7f85b4d778f78ba2e542f5148 (patch)
tree72099c6cf4d11fc41215f68c4eed493dbbf43ca1 /src/wrapped
parent6035cbd5c1204d7c68bb144b948b0ee1c66061d9 (diff)
downloadbox64-72df0bd1a034f0e7f85b4d778f78ba2e542f5148.tar.gz
box64-72df0bd1a034f0e7f85b4d778f78ba2e542f5148.zip
Fixed dlsym with RTLD_NEXT and preloaded libs
Diffstat (limited to 'src/wrapped')
-rw-r--r--src/wrapped/wrappedlibdl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/wrapped/wrappedlibdl.c b/src/wrapped/wrappedlibdl.c
index 81ee1ff6..2687b7ad 100644
--- a/src/wrapped/wrappedlibdl.c
+++ b/src/wrapped/wrappedlibdl.c
@@ -370,7 +370,7 @@ void* my_dlsym(x64emu_t* emu, void *handle, void *symbol)
         return NULL;
     }
     if(handle==(void*)~0LL) {
-        // special case, look globably but no self (RTLD_NEXT)
+        // special case, look globably after self in the lm chain (RTLD_NEXT)
         uintptr_t ret_addr = 0;
         #ifdef BOX32
         if(box64_is32bits)
@@ -379,7 +379,7 @@ void* my_dlsym(x64emu_t* emu, void *handle, void *symbol)
         #endif
             ret_addr = *(uintptr_t*)R_RSP;
         elfheader_t *elf = FindElfAddress(my_context, ret_addr); // use return address to guess "self"
-        if(GetNoSelfSymbolStartEnd(my_context->maplib, rsymbol, &start, &end, elf, 0, -1, NULL, 0, NULL)) {
+        if(GetNextSymbolStartEnd(my_context->maplib, rsymbol, &start, &end, elf, 0, -1, NULL, 0, NULL)) {
             printf_dlsym(LOG_NEVER, "%p\n", (void*)start);
             pthread_mutex_unlock(&mutex);
             return (void*)start;