munmap: fix memory leak

This commit is contained in:
Matheus
2024-04-21 20:16:01 -03:00
parent c62cfad164
commit f827163056
2 changed files with 4 additions and 1 deletions
+3
View File
@@ -395,6 +395,7 @@ void *vmm_map(void *addr, volatile size_t size, int flags, mmuflags_t mmuflags,
if (addr == NULL)
addr = KERNELSPACE_START;
// XXX maps where addr is not page aligned can break
addr = (void *)ROUND_DOWN((uintptr_t)addr, PAGE_SIZE);
if (flags & VMM_FLAGS_PAGESIZE)
size *= PAGE_SIZE;
@@ -482,7 +483,9 @@ void *vmm_map(void *addr, volatile size_t size, int flags, mmuflags_t mmuflags,
}
void vmm_unmap(void *addr, size_t size, int flags) {
// XXX maps where addr is not page aligned can break
addr = (void *)ROUND_DOWN((uintptr_t)addr, PAGE_SIZE);
if (flags & VMM_FLAGS_PAGESIZE)
size *= PAGE_SIZE;
else
+1 -1
View File
@@ -18,7 +18,7 @@ syscallret_t syscall_munmap(context_t *ctx, void *addr, size_t length) {
return ret;
}
vmm_unmap(addr, length / PAGE_SIZE, 0);
vmm_unmap(addr, length, 0);
ret.ret = 0;
ret.errno = 0;