mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 10:38:11 +00:00
LibELF: Allow elf files with no section header to pass validation
This commit is contained in:
parent
07b4957361
commit
79769ee74e
1 changed files with 2 additions and 2 deletions
|
@ -93,7 +93,7 @@ bool validate_elf_header(const Elf32_Ehdr& elf_header, size_t file_size, bool ve
|
|||
return false;
|
||||
}
|
||||
|
||||
if (elf_header.e_phoff < elf_header.e_ehsize || elf_header.e_shoff < elf_header.e_ehsize) {
|
||||
if (elf_header.e_phoff < elf_header.e_ehsize || (elf_header.e_shnum != SHN_UNDEF && elf_header.e_shoff < elf_header.e_ehsize)) {
|
||||
if (verbose) {
|
||||
dbgprintf("SHENANIGANS! program header offset (%d) or section header offset (%d) overlap with ELF header!\n",
|
||||
elf_header.e_phoff, elf_header.e_shoff);
|
||||
|
@ -148,7 +148,7 @@ bool validate_elf_header(const Elf32_Ehdr& elf_header, size_t file_size, bool ve
|
|||
return false;
|
||||
}
|
||||
|
||||
if (elf_header.e_shoff < end_of_last_program_header) {
|
||||
if (elf_header.e_shoff != SHN_UNDEF && elf_header.e_shoff < end_of_last_program_header) {
|
||||
if (verbose) {
|
||||
dbgprintf("SHENANIGANS! Section header table begins at file offset %d, which is within program headers [ %d - %zu ]!\n",
|
||||
elf_header.e_shoff, elf_header.e_phoff, end_of_last_program_header);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue