elf: execve statically linked programs instead of crashing [BZ #28648]
authorFlorian Weimer <fweimer@redhat.com>
Sun, 5 Dec 2021 10:28:34 +0000 (11:28 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Sun, 5 Dec 2021 10:28:34 +0000 (11:28 +0100)
commitc1cb2deeca1a85c6fc5bd41b90816d48a95bc434
treeb8adcf18e06480c47d65f991739788f0f99ccd4d
parentbada2e312a8b94c5fc2f5571b249c71cb466a640
elf: execve statically linked programs instead of crashing [BZ #28648]

Programs without dynamic dependencies and without a program
interpreter are now run via execve.

Previously, the dynamic linker either crashed while attempting to
read a non-existing dynamic segment (looking for DT_AUDIT/DT_DEPAUDIT
data), or the self-relocated in the static PIE executable crashed
because the outer dynamic linker had already applied RELRO protection.

<dl-execve.h> is needed because execve is not available in the
dynamic loader on Hurd.

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
NEWS
elf/Makefile
elf/rtld.c
elf/tst-rtld-run-static.c [new file with mode: 0644]
sysdeps/generic/dl-execve.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/dl-execve.h [new file with mode: 0644]