:: commit 5d6135e67adc3d4ef707e520d04c8cbdcbdc9c89

mintsuki <mintsuki@protonmail.com> — 2021-10-02 19:32

parents: f448df216e

elf: Fix off-by-1 comparisons

diff --git a/stage23/lib/elf.c b/stage23/lib/elf.c
index 845ff30c..c99f633b 100644
--- a/stage23/lib/elf.c
+++ b/stage23/lib/elf.c
@@ -522,7 +522,7 @@ final:
         }
 
         if (use_paddr) {
-            if (!entry_adjusted && entry >= phdr.p_vaddr && entry <= (phdr.p_vaddr + phdr.p_memsz)) {
+            if (!entry_adjusted && entry >= phdr.p_vaddr && entry < (phdr.p_vaddr + phdr.p_memsz)) {
                 entry -= phdr.p_vaddr;
                 entry += phdr.p_paddr;
                 entry_adjusted = true;
@@ -597,7 +597,7 @@ int elf32_load(uint8_t *elf, uint32_t *entry_point, uint32_t *top, uint32_t allo
             memset(ptr, 0, to_zero);
         }
 
-        if (!entry_adjusted && entry >= phdr.p_vaddr && entry <= (phdr.p_vaddr + phdr.p_memsz)) {
+        if (!entry_adjusted && entry >= phdr.p_vaddr && entry < (phdr.p_vaddr + phdr.p_memsz)) {
             entry -= phdr.p_vaddr;
             entry += phdr.p_paddr;
             entry_adjusted = true;
tab: 248 wrap: offon