aboutsummaryrefslogtreecommitdiff
path: root/libexec/rtld-elf
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2020-09-05 22:44:38 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2020-09-05 22:44:38 +0000
commit500433057e1d3e241c1dd57ae9dfc3116e9b6382 (patch)
tree1cbfae0d53bcba66ddaa90c6b1cfabbce30dd1ef /libexec/rtld-elf
parent2b49b95cfa930cec0092188bf1d78a82133a6489 (diff)
downloadsrc-500433057e1d3e241c1dd57ae9dfc3116e9b6382.tar.gz
src-500433057e1d3e241c1dd57ae9dfc3116e9b6382.zip
rtld: do not refuse to relocate objects without dynamic symtabs.
Such objects can still have valid relocations not requiring symbolic references. PR: 249121 Reported by: wsh@riski.sh Sponsored by: The FreeBSD Foundation MFC after: 1 week
Notes
Notes: svn path=/head/; revision=365369
Diffstat (limited to 'libexec/rtld-elf')
-rw-r--r--libexec/rtld-elf/rtld.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 758725a24320..c56aa9fa513c 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -3013,11 +3013,8 @@ relocate_object(Obj_Entry *obj, bool bind_now, Obj_Entry *rtldobj,
dbg("relocating \"%s\"", obj->path);
if (obj->symtab == NULL || obj->strtab == NULL ||
- !(obj->valid_hash_sysv || obj->valid_hash_gnu)) {
- _rtld_error("%s: Shared object has no run-time symbol table",
- obj->path);
- return (-1);
- }
+ !(obj->valid_hash_sysv || obj->valid_hash_gnu))
+ dbg("object %s has no run-time symbol table", obj->path);
/* There are relocations to the write-protected text segment. */
if (obj->textrel && reloc_textrel_prot(obj, true) != 0)