]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC r340137: rtld: move relro enforcement after ifunc processing
authoremaste <emaste@FreeBSD.org>
Wed, 7 Nov 2018 18:04:19 +0000 (18:04 +0000)
committeremaste <emaste@FreeBSD.org>
Wed, 7 Nov 2018 18:04:19 +0000 (18:04 +0000)
commitbe465211500fa4f84bd1fc00d339d0f58d498491
tree2809f390dead179d15d022eed55cfd713344c18e
parent3ad507840edcff16e2740b89f67439e9ed4c08d0
MFC r340137: rtld: move relro enforcement after ifunc processing

Previously the combination of relro (implicit), -z now and ifunc use
resulted in a segfault when applying ifuncs after relro (test binary
here just calls amd64_get_fsbase()):

| % env LD_DEBUG=1 libexec/rtld-elf/obj/ld-elf.so.1 a.out
| ...
| enforcing main obj relro
| ...
| resolving ifuncs
| reloc_jmpslot: *0x203198 = 0x189368ea4570
| zsh: bus error (core dumped)  LD_DEBUG=1 obj/ld-elf.so.1 ~/a.out

Approved by: re (gjb)
libexec/rtld-elf/rtld.c