From 28bd57c6d03086f5724dafff02444144fbc6a3cf Mon Sep 17 00:00:00 2001 From: tkchia Date: Fri, 14 Oct 2022 08:45:29 +0000 Subject: [PATCH] [metal] Fix bug: munmap() should clear PAGE_RSRV in page table --- libc/calls/munmap-metal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libc/calls/munmap-metal.c b/libc/calls/munmap-metal.c index dea02e651..1b7f9e991 100644 --- a/libc/calls/munmap-metal.c +++ b/libc/calls/munmap-metal.c @@ -26,7 +26,7 @@ noasan int sys_munmap_metal(void *addr, size_t size) { mm = (struct mman *)(BANE + 0x0500); for (i = 0; i < size; i += 4096) { e = __get_virtual(mm, __get_pml4t(), (uint64_t)addr + i, false); - if (e) *e = ~PAGE_V; + if (e) *e = ~(PAGE_V | PAGE_RSRV); invlpg(e); } return 0;