diff options
author | kib <kib@FreeBSD.org> | 2017-03-29 11:03:08 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2017-03-29 11:03:08 +0000 |
commit | 2831f74217fb010469f2c93f062dfaf20ea0be8e (patch) | |
tree | 1257f910b0d0b1d9c206c83de7a6c1fbfd40344b /libexec/rtld-elf/mips | |
parent | 8c7458908683635acf91691601f8a542f4067505 (diff) | |
download | FreeBSD-src-2831f74217fb010469f2c93f062dfaf20ea0be8e.zip FreeBSD-src-2831f74217fb010469f2c93f062dfaf20ea0be8e.tar.gz |
MFC r315331:
Implement LD_BIND_NOT knob for rtld.
MFC r315337:
Disable LD_BIND_NOT for setugid processes.
MFC r315429 (by jilles):
Document that LD_BIND_NOT is unset for setugid processes.
Diffstat (limited to 'libexec/rtld-elf/mips')
-rw-r--r-- | libexec/rtld-elf/mips/reloc.c | 3 | ||||
-rw-r--r-- | libexec/rtld-elf/mips/rtld_machdep.h | 5 |
2 files changed, 4 insertions, 4 deletions
diff --git a/libexec/rtld-elf/mips/reloc.c b/libexec/rtld-elf/mips/reloc.c index a3ba2f4..5dc5c79 100644 --- a/libexec/rtld-elf/mips/reloc.c +++ b/libexec/rtld-elf/mips/reloc.c @@ -259,7 +259,8 @@ _mips_rtld_bind(Obj_Entry *obj, Elf_Size reloff) obj->path, (intmax_t)reloff, defobj->strtab + def->st_name, (void *)*where, (void *)target); - *where = target; + if (!ld_bind_not) + *where = target; lock_release(rtld_bind_lock, &lockstate); return (Elf_Addr)target; } diff --git a/libexec/rtld-elf/mips/rtld_machdep.h b/libexec/rtld-elf/mips/rtld_machdep.h index 484af1b..8536061 100644 --- a/libexec/rtld-elf/mips/rtld_machdep.h +++ b/libexec/rtld-elf/mips/rtld_machdep.h @@ -39,9 +39,8 @@ struct Struct_Obj_Entry; #define rtld_dynamic(obj) (&_DYNAMIC) Elf_Addr reloc_jmpslot(Elf_Addr *where, Elf_Addr target, - const struct Struct_Obj_Entry *defobj, - const struct Struct_Obj_Entry *obj, - const Elf_Rel *rel); + const struct Struct_Obj_Entry *defobj, const struct Struct_Obj_Entry *obj, + const Elf_Rel *rel); #define make_function_pointer(def, defobj) \ ((defobj)->relocbase + (def)->st_value) |