Remove support for non-PIE executables

Don't support the dynamic linker loading ET_EXEC executables. Only
support ET_DYN executables.

Bug: 14566672
Change-Id: Ia1f2bfffe7ea867c1cd62e67d7fd637c60c0728d
This commit is contained in:
Nick Kralevich 2014-05-07 10:32:39 -07:00 committed by Dmitriy Ivanov
parent a3ce6bdb63
commit 2aebf5429b
1 changed files with 6 additions and 0 deletions

View File

@ -2071,6 +2071,12 @@ static ElfW(Addr) __linker_init_post_relocation(KernelArgumentBlock& args, ElfW(
si->dynamic = NULL;
si->ref_count = 1;
ElfW(Ehdr)* elf_hdr = reinterpret_cast<ElfW(Ehdr)*>(si->base);
if (elf_hdr->e_type != ET_DYN) {
__libc_format_fd(2, "error: only position independent executables (PIE) are supported.\n");
exit(EXIT_FAILURE);
}
// Use LD_LIBRARY_PATH and LD_PRELOAD (but only if we aren't setuid/setgid).
parse_LD_LIBRARY_PATH(ldpath_env);
parse_LD_PRELOAD(ldpreload_env);