fix SIGBUS due to mapping being larger than file

This commit is contained in:
2025-12-17 16:15:41 +01:00
parent d52cf8aaaf
commit d25cf59380
4 changed files with 27 additions and 5 deletions

View File

@@ -256,10 +256,10 @@ fn patchLoadedElf(base: usize) !void {
const page_start = mem.alignBackward(usize, vaddr, page_size);
const page_end = mem.alignForward(usize, vaddr + memsz, page_size);
const size = page_end - page_start;
const region = @as([*]align(page_size) u8, @ptrFromInt(page_start))[0 .. page_end - page_start];
const region = @as([*]align(page_size) u8, @ptrFromInt(page_start))[0..size];
log.info("Patching segment: 0x{x} - 0x{x}", .{ page_start, page_end });
try Patcher.patchRegion(region);
try posix.mprotect(region, elfToMmapProt(phdr.p_flags));
}