diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2020-09-05 22:44:38 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2020-09-05 22:44:38 +0000 |
commit | 500433057e1d3e241c1dd57ae9dfc3116e9b6382 (patch) | |
tree | 1cbfae0d53bcba66ddaa90c6b1cfabbce30dd1ef /libexec/rtld-elf | |
parent | 2b49b95cfa930cec0092188bf1d78a82133a6489 (diff) | |
download | src-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.c | 7 |
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) |