From f5c9b561a9b39a9c86b6214b957d742833244211 Mon Sep 17 00:00:00 2001 From: EnderIce2 Date: Fri, 18 Apr 2025 12:36:33 +0000 Subject: [PATCH] fix(kernel/elf): check if vector is empty before calling .front() --- Kernel/exec/elf/elf_loader.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Kernel/exec/elf/elf_loader.cpp b/Kernel/exec/elf/elf_loader.cpp index f51196cc..d042dcc9 100644 --- a/Kernel/exec/elf/elf_loader.cpp +++ b/Kernel/exec/elf/elf_loader.cpp @@ -455,13 +455,14 @@ namespace Execute debug("gdb: \"-exec add-symbol-file-all /workspaces/Fennix/tmp_rootfs%s %#lx\" entry:%#lx", sanitizedPath.c_str(), base, entry); #endif - Elf_Phdr interp = ELFGetSymbolType(fd, PT_INTERP).front(); - if (interp.p_offset == 0) + std::vector interpVec = ELFGetSymbolType(fd, PT_INTERP); + if (interpVec.empty()) { debug("No interpreter found"); return; } + Elf_Phdr interp = interpVec.front(); std::string interpreterPath; interpreterPath.resize(256); fd->Read(interpreterPath.data(), 256, interp.p_offset);