Kernel+LibELF: Allow Non ET_DYN executables to have an interpreter

This commit is contained in:
Itamar 2020-12-18 15:50:05 +02:00 committed by Andreas Kling
parent d64d0451e5
commit 0cb636078a
Notes: sideshowbarker 2024-07-19 00:37:42 +09:00
2 changed files with 0 additions and 8 deletions

View file

@ -469,9 +469,6 @@ KResultOr<NonnullRefPtr<FileDescription>> Process::find_elf_interpreter_for_exec
}
if (!interpreter_path.is_empty()) {
// Programs with an interpreter better be relocatable executables or we don't know what to do...
if (elf_header->e_type != ET_DYN)
return KResult(-ENOEXEC);
#ifdef EXEC_DEBUG
dbg() << "exec(" << path << "): Using program interpreter " << interpreter_path;

View file

@ -195,11 +195,6 @@ bool validate_program_headers(const Elf32_Ehdr& elf_header, size_t file_size, co
auto& program_header = program_header_begin[header_index];
switch (program_header.p_type) {
case PT_INTERP:
if (ET_DYN != elf_header.e_type) {
if (verbose)
dbgprintf("Found PT_INTERP header (%zu) in non-DYN ELF object! What? We can't handle this!\n", header_index);
return false;
}
// We checked above that file_size was >= buffer size. We only care about buffer size anyway, we're trying to read this!
if (program_header.p_offset + program_header.p_filesz > buffer_size) {
if (verbose)