1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 21:47:46 +00:00

Kernel+Loader.so: Allow dynamic executables without an interpreter

Commit a3a9016701 removed the PT_INTERP header
from Loader.so which cleaned up some kernel code in execve. Unfortunately
it prevents Loader.so from being run as an executable
This commit is contained in:
William Marlow 2021-01-02 21:31:01 +00:00 committed by Andreas Kling
parent 137237b9c2
commit 747e8de96a
3 changed files with 28 additions and 16 deletions

View file

@ -143,8 +143,6 @@ void _start(int argc, char** argv, char** envp)
main_program_name = (const char*)auxvp->a_un.a_ptr;
}
}
ASSERT(main_program_fd >= 0);
ASSERT(!main_program_name.is_null());
if (main_program_name == "/usr/lib/Loader.so") {
// We've been invoked directly as an executable rather than as the
@ -155,6 +153,9 @@ void _start(int argc, char** argv, char** envp)
_exit(1);
}
ASSERT(main_program_fd >= 0);
ASSERT(!main_program_name.is_empty());
ELF::DynamicLinker::linker_main(move(main_program_name), main_program_fd, argc, argv, envp);
ASSERT_NOT_REACHED();
}