From e7bdea771bf97b8353be066f1adb137d1d02f6b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Thu, 21 Dec 2017 15:17:28 +0100 Subject: [PATCH] PMM - alloc zero after all free pages --- src/kernel/memory/pmm.c | 4 +++- src/kernel/memory/pmm.tt | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/kernel/memory/pmm.c b/src/kernel/memory/pmm.c index b17bf9d..70a8ef8 100644 --- a/src/kernel/memory/pmm.c +++ b/src/kernel/memory/pmm.c @@ -9,5 +9,7 @@ void pmm_free(void *c) void *pmm_alloc() { - return first; + void *c = first; + first = 0; + return c; } diff --git a/src/kernel/memory/pmm.tt b/src/kernel/memory/pmm.tt index 59ca725..7ddca08 100644 --- a/src/kernel/memory/pmm.tt +++ b/src/kernel/memory/pmm.tt @@ -18,3 +18,10 @@ TEST(alloc_returns_0_if_no_free_pages) void *a = pmm_alloc(); ASSERT_EQ_PTR(a, 0); } +TEST(alloc_zero_after_all_free_pages) +{ + pmm_free(&mem[0]); + pmm_alloc(); + void *a = pmm_alloc(); + ASSERT_EQ_PTR(a, 0); +}