mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 17:27:35 +00:00
LibELF: Fix building without PTHREAD_STACK_MIN defined
It may or may not be defined according to Dr. POSIX. Also, sneak in a little fix for passing a 64-bit value into a size_t-typed argument.
This commit is contained in:
parent
76449c21b2
commit
7cb765173c
1 changed files with 6 additions and 2 deletions
|
@ -264,7 +264,7 @@ ErrorOr<bool> validate_program_headers(ElfW(Ehdr) const& elf_header, size_t file
|
|||
return false;
|
||||
}
|
||||
if (interpreter_path_builder)
|
||||
TRY(interpreter_path_builder->try_append({ buffer.offset(program_header.p_offset), program_header.p_filesz - 1 }));
|
||||
TRY(interpreter_path_builder->try_append({ buffer.offset(program_header.p_offset), static_cast<size_t>(program_header.p_filesz) - 1 }));
|
||||
break;
|
||||
case PT_LOAD:
|
||||
case PT_DYNAMIC:
|
||||
|
@ -295,7 +295,11 @@ ErrorOr<bool> validate_program_headers(ElfW(Ehdr) const& elf_header, size_t file
|
|||
}
|
||||
|
||||
if (program_header.p_memsz != 0) {
|
||||
if (program_header.p_memsz < static_cast<unsigned>(PTHREAD_STACK_MIN) || program_header.p_memsz > static_cast<unsigned>(PTHREAD_STACK_MAX)) {
|
||||
if (
|
||||
#ifdef PTHREAD_STACK_MIN
|
||||
program_header.p_memsz < static_cast<unsigned>(PTHREAD_STACK_MIN) ||
|
||||
#endif
|
||||
program_header.p_memsz > static_cast<unsigned>(PTHREAD_STACK_MAX)) {
|
||||
if (verbose)
|
||||
dbgln("PT_GNU_STACK defines an unacceptable stack size.");
|
||||
return false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue