svn commit: r365368 - head/libexec/rtld-elf
Konstantin Belousov
kib at FreeBSD.org
Sat Sep 5 22:41:32 UTC 2020
Author: kib
Date: Sat Sep 5 22:41:31 2020
New Revision: 365368
URL: https://svnweb.freebsd.org/changeset/base/365368
Log:
rtld: do not process absent dynamic.
If object has no dynamic phdr, do not try to dereference NULL. This
means that we cannot process any relocation, and that there cannot be
symbols defined, but it is up to static linker to produce meaningful
objects.
PR: 249121
Reported by: wsh at riski.sh
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Modified:
head/libexec/rtld-elf/rtld.c
Modified: head/libexec/rtld-elf/rtld.c
==============================================================================
--- head/libexec/rtld-elf/rtld.c Sat Sep 5 20:22:02 2020 (r365367)
+++ head/libexec/rtld-elf/rtld.c Sat Sep 5 22:41:31 2020 (r365368)
@@ -1089,7 +1089,10 @@ digest_dynamic1(Obj_Entry *obj, int early, const Elf_D
*dyn_runpath = NULL;
obj->bind_now = false;
- for (dynp = obj->dynamic; dynp->d_tag != DT_NULL; dynp++) {
+ dynp = obj->dynamic;
+ if (dynp == NULL)
+ return;
+ for (; dynp->d_tag != DT_NULL; dynp++) {
switch (dynp->d_tag) {
case DT_REL:
More information about the svn-src-all
mailing list