:: commit c159516850c64580648c4be68308b8edd29bee5b

Mintsuki <mintsuki@protonmail.com> — 2025-06-07 04:43

parents: 1f3b5acedb

lib/elf: Only add bss span to mem to skip if highest address PHDR

Fixes #504
diff --git a/common/lib/elf.c b/common/lib/elf.c
index 0a39df95..e54322c0 100644
--- a/common/lib/elf.c
+++ b/common/lib/elf.c
@@ -877,7 +877,9 @@ again:
 
         memcpy((void *)(uintptr_t)load_addr, elf + (phdr->p_offset), phdr->p_filesz);
 
-        bss_size = phdr->p_memsz - phdr->p_filesz;
+        if (phdr->p_vaddr + phdr->p_memsz == max_vaddr) {
+            bss_size = phdr->p_memsz - phdr->p_filesz;
+        }
 
         if (!elf64_apply_relocations(elf, hdr, (void *)(uintptr_t)load_addr, phdr->p_vaddr, phdr->p_memsz, slide)) {
             panic(true, "elf: Failed to apply relocations");
tab: 248 wrap: offon