From 11513d662daf7a584b307eb3e27a512edef711b5 Mon Sep 17 00:00:00 2001 From: Leslie Zhai Date: Wed, 7 May 2025 21:36:37 +0800 Subject: [NON4KPAGE] Fix AllocLoadElfMemory multiblocks wrong alignment (#2608) (#2609) --- src/elfs/elfloader.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/elfs/elfloader.c b/src/elfs/elfloader.c index b8fbef38..f05dd219 100644 --- a/src/elfs/elfloader.c +++ b/src/elfs/elfloader.c @@ -299,8 +299,8 @@ int AllocLoadElfMemory(box64context_t* context, elfheader_t* head, int mainbin) uint8_t prot = ((e->p_flags & PF_R)?PROT_READ:0)|((e->p_flags & PF_W)?PROT_WRITE:0)|((e->p_flags & PF_X)?PROT_EXEC:0); // check if alignment is correct uintptr_t balign = head->multiblocks[n].align-1; - if(balign<4095) balign = 4095; - head->multiblocks[n].asize = (e->p_memsz+(e->p_paddr&balign)+4095)&~4095; + if (balign < (box64_pagesize - 1)) balign = box64_pagesize - 1; + head->multiblocks[n].asize = (e->p_memsz + (e->p_paddr & balign) + (box64_pagesize - 1)) & ~(box64_pagesize - 1); int try_mmap = 1; if(e->p_paddr&balign) try_mmap = 0; -- cgit 1.4.1