From 7cb765173c4f8da6d1349e72775c9fe9851295e6 Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Sun, 3 Sep 2023 22:11:39 +0300 Subject: [PATCH] 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. --- Userland/Libraries/LibELF/Validation.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibELF/Validation.cpp b/Userland/Libraries/LibELF/Validation.cpp index 8e5da1cc4d..2d898678c6 100644 --- a/Userland/Libraries/LibELF/Validation.cpp +++ b/Userland/Libraries/LibELF/Validation.cpp @@ -264,7 +264,7 @@ ErrorOr 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(program_header.p_filesz) - 1 })); break; case PT_LOAD: case PT_DYNAMIC: @@ -295,7 +295,11 @@ ErrorOr validate_program_headers(ElfW(Ehdr) const& elf_header, size_t file } if (program_header.p_memsz != 0) { - if (program_header.p_memsz < static_cast(PTHREAD_STACK_MIN) || program_header.p_memsz > static_cast(PTHREAD_STACK_MAX)) { + if ( +#ifdef PTHREAD_STACK_MIN + program_header.p_memsz < static_cast(PTHREAD_STACK_MIN) || +#endif + program_header.p_memsz > static_cast(PTHREAD_STACK_MAX)) { if (verbose) dbgln("PT_GNU_STACK defines an unacceptable stack size."); return false;