mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-04 09:09:56 +00:00
Pass the correct flag to find_symdef() from _rtld_bind().
When symbol versioning was added to rtld, the boolean 'in_plt' argument to find_symdef() was converted to a bitmask of flags. The first flag added was 'SYMLOOK_IN_PLT' which replaced the 'in_plt' bool. This happened to still work by accident as SYMLOOK_IN_PLT had the value of 1 which is the same as 'true', so there should be no functional change. Tested on: amd64 Reviewed by: kan MFC after: 2 weeks Sponsored by: DARPA / AFRL
This commit is contained in:
parent
8fc77fff81
commit
b5b4f379e0
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=308456
@ -713,8 +713,8 @@ _rtld_bind(Obj_Entry *obj, Elf_Size reloff)
|
||||
rel = (const Elf_Rel *) ((caddr_t) obj->pltrela + reloff);
|
||||
|
||||
where = (Elf_Addr *) (obj->relocbase + rel->r_offset);
|
||||
def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, true, NULL,
|
||||
&lockstate);
|
||||
def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, SYMLOOK_IN_PLT,
|
||||
NULL, &lockstate);
|
||||
if (def == NULL)
|
||||
rtld_die();
|
||||
if (ELF_ST_TYPE(def->st_info) == STT_GNU_IFUNC)
|
||||
|
@ -503,7 +503,7 @@ reloc_plt(Obj_Entry *obj)
|
||||
assert(ELF64_R_TYPE_ID(rela->r_info) == R_SPARC_JMP_SLOT);
|
||||
where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
|
||||
def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj,
|
||||
true, NULL, lockstate);
|
||||
SYMLOOK_IN_PLT, NULL, lockstate);
|
||||
value = (Elf_Addr)(defobj->relocbase + def->st_value);
|
||||
*where = value;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user