diff --git a/src/stub/l_lx_elf.c b/src/stub/l_lx_elf.c index 87f0f3fc..796589f2 100644 --- a/src/stub/l_lx_elf.c +++ b/src/stub/l_lx_elf.c @@ -276,7 +276,7 @@ xfind_pages(unsigned mflags, Elf32_Phdr const *phdr, int phnum, } } szlo += ~PAGE_MASK & lo; // page fragment on lo edge - lo -= ~PAGE_MASK & lo; // round down to page boundary + lo -= ~PAGE_MASK & lo; // round down to page boundary hi = PAGE_MASK & (hi - lo - PAGE_MASK -1); // page length szlo = PAGE_MASK & (szlo - PAGE_MASK -1); // page length addr = do_mmap((void *)lo, hi, PROT_READ|PROT_WRITE|PROT_EXEC, mflags, 0, 0); diff --git a/src/stub/l_lx_sh.c b/src/stub/l_lx_sh.c index ab993731..d9cbe598 100644 --- a/src/stub/l_lx_sh.c +++ b/src/stub/l_lx_sh.c @@ -216,7 +216,7 @@ xfind_pages(unsigned mflags, Elf32_Phdr const *phdr, int phnum) do_brk((void *)hi); } szlo += ~PAGE_MASK & lo; // page fragment on lo edge - lo -= ~PAGE_MASK & lo; // round down to page boundary + lo -= ~PAGE_MASK & lo; // round down to page boundary hi = PAGE_MASK & (hi - lo - PAGE_MASK -1); // page length szlo = PAGE_MASK & (szlo - PAGE_MASK -1); // page length addr = do_mmap((void *)lo, hi, PROT_READ|PROT_WRITE|PROT_EXEC, mflags, 0, 0);