mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 06:07:34 +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:
parent
137237b9c2
commit
747e8de96a
3 changed files with 28 additions and 16 deletions
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue