[PATCH v10 0/4] Multiple rtld-audit fixes
Adhemerval Zanella
adhemerval.zanella@linaro.org
Mon Jan 17 21:31:32 GMT 2022
This patches fixes some of remaining issues brought by John
Mellor-Crummey [1] while trying to use it along with the HPCToolkit.
This should cover all the issues listed as 'Tier 1' [2] (the aarch64
SVE requires additional work, so it is postpone to 2.36) and also
most of the 'Tier2' issue (BZ#28096 inclusive) which prevents the use
of some glibc function that uses TLS internally on the audit module.
I have checked the patches on x86_64, i686, aarch64, armv7, powerpc64,
powerpc64le, and powerpc.
[1] https://sourceware.org/pipermail/libc-alpha/2021-June/127636.html
[2]
https://docs.google.com/document/d/1dVaDBdzySecxQqD6hLLzDrEF18M1UtjDna9gL5BWWI0/edit#
[3]
https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/azanella/ld-audit-fixes
Changes from v9:
- Fixed aarch64 comments about the _dl_runtime_profile stack layout.
- Rebased against master.
Changes from v8:
- Improved la_activity test coverage.
- Fixed BZ#28096 regression.
Changes from v7:
- Added la_activity tests during application exit.
- Refactor _dl_allocate_tls_init to not initialize static TLS.
- Changed sotruss to warn instead of error for bind-now.
- Added NEWS and changed commit message for aarch64.
Changes from v6:
- Dropped SVE, main application on main_map l_name, and Run
constructors if executable has a soname of a dependency patches.
- Bumped LAV_VERSION to 2 on la_symbind bind-now support.
- Added extension pointer on aarch64 fix.
- Moved the refactor patch at the start of the set.
- Changed _dl_audit_objsearch interface.
Changes from v5:
- Fixed build with --enable-profiling=yes.
- Moved la_activity (LA_ACT_ADD) *after* _dl_add_to_namespace_list()
for BZ#28062 fix.
- Fixed powerpc64 ELFv1 OPD toc setup for bind-now.
- Fixed testsuite issues for ia64.
- Removed LA_SYMB_BINDNOW now that LA_SYMB_NOPLTENTER and
LA_SYMB_NOPLTEXIT is passed for bind-now.
Changes from v4:
- Added a fix for constructors if executable has a soname of a
dependency
- Rebased against master.
Changes from v3
- Added a aarch64 SVE RFC patch.
- Fixed an issue with bind-now fix on powerpc64 ELFv1.
- Rebased against master.
Changes from v2
- Refactored rtld-audit code to move common come to dl-audit.c.
- Issue audit la_objopen() for vDSO.
- Isseu la_activity during application exit.
- Issue la_symbind() for bind-now (BZ #23734).
- Fix runtime linker auditing on aarch64 (BZ #26643)
Changes from v1
- Fixed -fstack-protector-all tst-auditmod17.
- Simplify the _dl_call_libc_early_init call the 'Fix audit
regression' patch.
- Remove symbind check fr BZ#15333.
- Added the BZ#28096 fix.
--
Adhemerval Zanella (3):
elf: Add la_activity during application exit
elf: Fix initial-exec TLS access on audit modules (BZ #28096)
elf: Issue la_symbind for bind-now (BZ #23734)
Ben Woodard (1):
elf: Fix runtime linker auditing on aarch64 (BZ #26643)
NEWS | 8 ++
bits/link_lavcurrent.h | 2 +-
elf/Makefile | 104 +++++++++++++-
elf/dl-audit.c | 58 +++++---
elf/dl-fini.c | 10 ++
elf/dl-load.c | 3 +
elf/dl-tls.c | 13 +-
elf/do-rel.h | 57 ++++++--
elf/rtld.c | 8 +-
elf/sotruss-lib.c | 7 +
elf/tst-audit21.c | 42 ++++++
elf/tst-audit23.c | 239 +++++++++++++++++++++++++++++++
elf/tst-audit23mod.c | 23 +++
elf/tst-audit24a.c | 36 +++++
elf/tst-audit24amod1.c | 31 ++++
elf/tst-audit24amod2.c | 25 ++++
elf/tst-audit24b.c | 37 +++++
elf/tst-audit24bmod1.c | 31 ++++
elf/tst-audit24bmod2.c | 23 +++
elf/tst-audit24c.c | 2 +
elf/tst-audit24d.c | 36 +++++
elf/tst-audit24dmod1.c | 33 +++++
elf/tst-audit24dmod2.c | 28 ++++
elf/tst-audit24dmod3.c | 31 ++++
elf/tst-audit24dmod4.c | 25 ++++
elf/tst-audit25a.c | 127 ++++++++++++++++
elf/tst-audit25b.c | 128 +++++++++++++++++
elf/tst-audit25mod1.c | 30 ++++
elf/tst-audit25mod2.c | 30 ++++
elf/tst-audit25mod3.c | 22 +++
elf/tst-audit25mod4.c | 22 +++
elf/tst-auditmod21a.c | 80 +++++++++++
elf/tst-auditmod21b.c | 22 +++
elf/tst-auditmod23.c | 74 ++++++++++
elf/tst-auditmod24.h | 29 ++++
elf/tst-auditmod24a.c | 114 +++++++++++++++
elf/tst-auditmod24b.c | 104 ++++++++++++++
elf/tst-auditmod24c.c | 3 +
elf/tst-auditmod24d.c | 120 ++++++++++++++++
elf/tst-auditmod25.c | 79 ++++++++++
nptl/allocatestack.c | 2 +-
sysdeps/aarch64/Makefile | 20 +++
sysdeps/aarch64/bits/link.h | 26 ++--
sysdeps/aarch64/dl-audit-check.h | 28 ++++
sysdeps/aarch64/dl-link.sym | 6 +-
sysdeps/aarch64/dl-trampoline.S | 82 +++++++----
sysdeps/aarch64/tst-audit26.c | 37 +++++
sysdeps/aarch64/tst-audit26mod.c | 33 +++++
sysdeps/aarch64/tst-audit26mod.h | 50 +++++++
sysdeps/aarch64/tst-audit27.c | 64 +++++++++
sysdeps/aarch64/tst-audit27mod.c | 95 ++++++++++++
sysdeps/aarch64/tst-audit27mod.h | 67 +++++++++
sysdeps/aarch64/tst-auditmod26.c | 103 +++++++++++++
sysdeps/aarch64/tst-auditmod27.c | 180 +++++++++++++++++++++++
sysdeps/generic/dl-audit-check.h | 23 +++
sysdeps/generic/dl-lookupcfg.h | 3 +
sysdeps/generic/ldsodefs.h | 7 +-
sysdeps/hppa/dl-lookupcfg.h | 3 +
sysdeps/ia64/dl-lookupcfg.h | 3 +
sysdeps/powerpc/dl-lookupcfg.h | 39 +++++
60 files changed, 2678 insertions(+), 89 deletions(-)
create mode 100644 elf/tst-audit21.c
create mode 100644 elf/tst-audit23.c
create mode 100644 elf/tst-audit23mod.c
create mode 100644 elf/tst-audit24a.c
create mode 100644 elf/tst-audit24amod1.c
create mode 100644 elf/tst-audit24amod2.c
create mode 100644 elf/tst-audit24b.c
create mode 100644 elf/tst-audit24bmod1.c
create mode 100644 elf/tst-audit24bmod2.c
create mode 100644 elf/tst-audit24c.c
create mode 100644 elf/tst-audit24d.c
create mode 100644 elf/tst-audit24dmod1.c
create mode 100644 elf/tst-audit24dmod2.c
create mode 100644 elf/tst-audit24dmod3.c
create mode 100644 elf/tst-audit24dmod4.c
create mode 100644 elf/tst-audit25a.c
create mode 100644 elf/tst-audit25b.c
create mode 100644 elf/tst-audit25mod1.c
create mode 100644 elf/tst-audit25mod2.c
create mode 100644 elf/tst-audit25mod3.c
create mode 100644 elf/tst-audit25mod4.c
create mode 100644 elf/tst-auditmod21a.c
create mode 100644 elf/tst-auditmod21b.c
create mode 100644 elf/tst-auditmod23.c
create mode 100644 elf/tst-auditmod24.h
create mode 100644 elf/tst-auditmod24a.c
create mode 100644 elf/tst-auditmod24b.c
create mode 100644 elf/tst-auditmod24c.c
create mode 100644 elf/tst-auditmod24d.c
create mode 100644 elf/tst-auditmod25.c
create mode 100644 sysdeps/aarch64/dl-audit-check.h
create mode 100644 sysdeps/aarch64/tst-audit26.c
create mode 100644 sysdeps/aarch64/tst-audit26mod.c
create mode 100644 sysdeps/aarch64/tst-audit26mod.h
create mode 100644 sysdeps/aarch64/tst-audit27.c
create mode 100644 sysdeps/aarch64/tst-audit27mod.c
create mode 100644 sysdeps/aarch64/tst-audit27mod.h
create mode 100644 sysdeps/aarch64/tst-auditmod26.c
create mode 100644 sysdeps/aarch64/tst-auditmod27.c
create mode 100644 sysdeps/generic/dl-audit-check.h
create mode 100644 sysdeps/powerpc/dl-lookupcfg.h
--
2.32.0
More information about the Libc-alpha
mailing list