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;