From e9e750bd74fbdf0bc9b0837690eb4c72fbad58b3 Mon Sep 17 00:00:00 2001 From: kaguya Date: Mon, 18 May 2026 04:50:35 -0400 Subject: [PATCH] elf: fix epstein related bugs Signed-off-by: kaguya3311 --- src/fs/elf.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/fs/elf.c b/src/fs/elf.c index 74ae785..ad3c63d 100644 --- a/src/fs/elf.c +++ b/src/fs/elf.c @@ -149,9 +149,7 @@ uint64_t module_load(const char *path) { return 1; } - if (ehdr->e_ident[EI_CLASS] != ELFCLASS64 || - ehdr->e_ident[EI_DATA] != ELFDATA2LSB || ehdr->e_ident[EI_OSABI] != 0 || - ehdr->e_machine != EM_X86_64) { + if (ehdr->e_ident[EI_CLASS] != ELFCLASS64 || ehdr->e_ident[EI_DATA] != ELFDATA2LSB || (ehdr->e_ident[EI_OSABI] != ELFOSABI_NONE && ehdr->e_ident[EI_OSABI] != ELFOSABI_LINUX) || ehdr->e_machine != EM_X86_64) { kprintf("This ELF isn't for us\n"); return 1; } @@ -404,7 +402,7 @@ bool elf_load(struct pagemap *pagemap, struct resource *res, uint64_t load_base, if (header.e_ident[EI_CLASS] != ELFCLASS64 || header.e_ident[EI_DATA] != ELFDATA2LSB || - header.e_ident[EI_OSABI] != 0 || header.e_machine != EM_X86_64) { + (header.e_ident[EI_OSABI] != ELFOSABI_NONE && header.e_ident[EI_OSABI] != ELFOSABI_LINUX) || header.e_machine != EM_X86_64) { return false; }