]> git.ipfire.org Git - thirdparty/glibc.git/commit - NEWS
elf: Issue la_symbind for bind-now (BZ #23734)
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 24 Jan 2022 13:46:17 +0000 (10:46 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 1 Feb 2022 17:49:46 +0000 (14:49 -0300)
commit32612615c58b394c3eb09f020f31310797ad3854
tree3e6b65aaabd471f79a2179e75bbf64ccd1a6fa04
parent254d3d5aef2fd8430c469e1938209ac100ebf132
elf: Issue la_symbind for bind-now (BZ #23734)

The audit symbind callback is not called for binaries built with
-Wl,-z,now or when LD_BIND_NOW=1 is used, nor the PLT tracking callbacks
(plt_enter and plt_exit) since this would change the expected
program semantics (where no PLT is expected) and would have performance
implications (such as for BZ#15533).

LAV_CURRENT is also bumped to indicate the audit ABI change (where
la_symbind flags are set by the loader to indicate no possible PLT
trace).

To handle powerpc64 ELFv1 function descriptor, _dl_audit_symbind
requires to know whether bind-now is used so the symbol value is
updated to function text segment instead of the OPD (for lazy binding
this is done by PPC64_LOAD_FUNCPTR on _dl_runtime_resolve).

Checked on x86_64-linux-gnu, i686-linux-gnu, aarch64-linux-gnu,
powerpc64-linux-gnu.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
35 files changed:
NEWS
bits/link_lavcurrent.h
elf/Makefile
elf/dl-audit.c
elf/do-rel.h
elf/sotruss-lib.c
elf/tst-audit24a.c [new file with mode: 0644]
elf/tst-audit24amod1.c [new file with mode: 0644]
elf/tst-audit24amod2.c [new file with mode: 0644]
elf/tst-audit24b.c [new file with mode: 0644]
elf/tst-audit24bmod1.c [new file with mode: 0644]
elf/tst-audit24bmod2.c [new file with mode: 0644]
elf/tst-audit24c.c [new file with mode: 0644]
elf/tst-audit24d.c [new file with mode: 0644]
elf/tst-audit24dmod1.c [new file with mode: 0644]
elf/tst-audit24dmod2.c [new file with mode: 0644]
elf/tst-audit24dmod3.c [new file with mode: 0644]
elf/tst-audit24dmod4.c [new file with mode: 0644]
elf/tst-audit25a.c [new file with mode: 0644]
elf/tst-audit25b.c [new file with mode: 0644]
elf/tst-audit25mod1.c [new file with mode: 0644]
elf/tst-audit25mod2.c [new file with mode: 0644]
elf/tst-audit25mod3.c [new file with mode: 0644]
elf/tst-audit25mod4.c [new file with mode: 0644]
elf/tst-auditmod24.h [new file with mode: 0644]
elf/tst-auditmod24a.c [new file with mode: 0644]
elf/tst-auditmod24b.c [new file with mode: 0644]
elf/tst-auditmod24c.c [new file with mode: 0644]
elf/tst-auditmod24d.c [new file with mode: 0644]
elf/tst-auditmod25.c [new file with mode: 0644]
sysdeps/generic/dl-lookupcfg.h
sysdeps/generic/ldsodefs.h
sysdeps/hppa/dl-lookupcfg.h
sysdeps/ia64/dl-lookupcfg.h
sysdeps/powerpc/dl-lookupcfg.h [new file with mode: 0644]