diff options
author | Florian Weimer <fweimer@redhat.com> | 2020-01-16 16:53:58 +0100 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2020-01-16 16:53:58 +0100 |
commit | a332bd1518af518c984fad73eba6f46dc5b2b2d4 (patch) | |
tree | 598117449c3beb3a1bf831265073af20e9280f46 /elf/Makefile | |
parent | 5177d85b0c050a2333a0c4165c938dd422013d05 (diff) | |
download | glibc-a332bd1518af518c984fad73eba6f46dc5b2b2d4.zip glibc-a332bd1518af518c984fad73eba6f46dc5b2b2d4.tar.gz glibc-a332bd1518af518c984fad73eba6f46dc5b2b2d4.tar.bz2 |
elf: Add elf/tst-dlopenfail-2 [BZ #25396]
Without CET, a jump into a newly loaded object through an overwritten
link map often does not crash, it just executes some random code.
CET detects this in some cases because the function pointer does not
point to the start of a function in the replacement shared object,
so there is no ENDBR instruction.
The new test uses a small shared object and the existing dangling
link map to trigger the bug.
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Diffstat (limited to 'elf/Makefile')
-rw-r--r-- | elf/Makefile | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/elf/Makefile b/elf/Makefile index 9b09f09..6c62ed6 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -200,7 +200,8 @@ tests += restest1 preloadtest loadfail multiload origtest resolvfail \ tst-debug1 tst-main1 tst-absolute-sym tst-absolute-zero tst-big-note \ tst-unwind-ctor tst-unwind-main tst-audit13 \ tst-sonamemove-link tst-sonamemove-dlopen tst-dlopen-tlsmodid \ - tst-dlopen-self tst-auditmany tst-initfinilazyfail tst-dlopenfail + tst-dlopen-self tst-auditmany tst-initfinilazyfail tst-dlopenfail \ + tst-dlopenfail-2 # reldep9 tests-internal += loadtest unload unload2 circleload1 \ neededtest neededtest2 neededtest3 neededtest4 \ @@ -311,7 +312,7 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ tst-auditmanymod7 tst-auditmanymod8 tst-auditmanymod9 \ tst-initlazyfailmod tst-finilazyfailmod \ tst-dlopenfailmod1 tst-dlopenfaillinkmod tst-dlopenfailmod2 \ - tst-ldconfig-ld-mod + tst-dlopenfailmod3 tst-ldconfig-ld-mod # Most modules build with _ISOMAC defined, but those filtered out # depend on internal headers. modules-names-tests = $(filter-out ifuncmod% tst-libc_dlvsym-dso tst-tlsmod%,\ @@ -1645,6 +1646,10 @@ $(objpfx)tst-dlopenfailmod1.so: \ $(shared-thread-library) $(objpfx)tst-dlopenfaillinkmod.so LDFLAGS-tst-dlopenfaillinkmod.so = -Wl,-soname,tst-dlopenfail-missingmod.so $(objpfx)tst-dlopenfailmod2.so: $(shared-thread-library) +$(objpfx)tst-dlopenfail-2: $(libdl) +$(objpfx)tst-dlopenfail.out: \ + $(objpfx)tst-dlopenfailmod1.so $(objpfx)tst-dlopenfailmod2.so \ + $(objpfx)tst-dlopenfailmod3.so $(objpfx)tst-dlopen-nodelete-reloc: $(libdl) $(objpfx)tst-dlopen-nodelete-reloc.out: \ |