From 103c804c8ef230cb8c102c36a9bd5ed8582f3aed Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 27 Aug 2023 17:16:22 +0200 Subject: [ELFLOADER] This was missing from previous elfloader work --- src/elfs/elfloader.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/elfs/elfloader.c b/src/elfs/elfloader.c index 6a516601..1f6f6c65 100644 --- a/src/elfs/elfloader.c +++ b/src/elfs/elfloader.c @@ -471,7 +471,7 @@ int RelocateElfREL(lib_t *maplib, lib_t *local_maplib, int bindnow, elfheader_t* if(version!=-1) version &=0x7fff; const char* vername = GetSymbolVersion(head, version); const char* globdefver = (bind==STB_WEAK)?NULL:GetMaplibDefaultVersion(maplib, local_maplib, 0, symname); - const char* weakdefver = (bind==STB_WEAK)?GetMaplibDefaultVersion(maplib, local_maplib, 1, symname):NULL; + const char* weakdefver = (bind==STB_WEAK || !globdefver)?GetMaplibDefaultVersion(maplib, local_maplib, 1, symname):NULL; if(bind==STB_LOCAL) { if(!symname || !symname[0]) { offs = sym->st_value + head->delta; @@ -676,7 +676,7 @@ int RelocateElfRELA(lib_t *maplib, lib_t *local_maplib, int bindnow, elfheader_t weakdefver = old_weakdefver; } else { old_globdefver = globdefver = (bind==STB_WEAK)?NULL:GetMaplibDefaultVersion(maplib, local_maplib, 0, symname); - old_weakdefver = weakdefver = (bind==STB_WEAK)?GetMaplibDefaultVersion(maplib, local_maplib, 1, symname):NULL; + old_weakdefver = weakdefver = (bind==STB_WEAK || !globdefver)?GetMaplibDefaultVersion(maplib, local_maplib, 1, symname):NULL; } if(bind==STB_LOCAL) { if(!symname || !symname[0]) { -- cgit 1.4.1