From bc49ea97bb61bbe55af3e847a88a649d04a93777 Mon Sep 17 00:00:00 2001
From: dzwdz
Date: Wed, 20 Jul 2022 17:26:25 +0200
Subject: user/elf: free memory not belonging to the elf when jumping to it

---
 src/kernel/mem/alloc.c | 2 ++
 1 file changed, 2 insertions(+)

(limited to 'src/kernel/mem/alloc.c')

diff --git a/src/kernel/mem/alloc.c b/src/kernel/mem/alloc.c
index e0cc5f4..8d6fa5b 100644
--- a/src/kernel/mem/alloc.c
+++ b/src/kernel/mem/alloc.c
@@ -101,6 +101,8 @@ void *page_zalloc(size_t pages) {
 
 // frees `pages` consecutive pages starting from *first
 void page_free(void *first_addr, size_t pages) {
+	if (first_addr < page_bitmap_start) // TODO unimplemented
+		return;
 	size_t first = (uintptr_t)(first_addr - page_bitmap_start) / PAGE_SIZE;
 	for (size_t i = 0; i < pages; i++) {
 		assert(bitmap_get(first + i));
-- 
cgit v1.2.3