From 3c38ead19f68e119b17cb09b9d83d01ccb178fe5 Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Sun, 3 Jul 2016 13:24:43 +0200 Subject: [PATCH] Protect kernel allocations This code is absolutely not-reentrant --- kernel/src/kalloc.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel/src/kalloc.cpp b/kernel/src/kalloc.cpp index deede38e..5feb8492 100644 --- a/kernel/src/kalloc.cpp +++ b/kernel/src/kalloc.cpp @@ -10,6 +10,7 @@ #include "physical_allocator.hpp" #include "paging.hpp" #include "e820.hpp" +#include "int_lock.hpp" #include "fs/sysfs.hpp" @@ -337,6 +338,8 @@ void kalloc::finalize(){ } void* kalloc::k_malloc(uint64_t bytes){ + direct_int_lock lock; + auto current = malloc_head->next(); //Try not to create too small blocks @@ -421,6 +424,8 @@ void* kalloc::k_malloc(uint64_t bytes){ } void kalloc::k_free(void* block){ + direct_int_lock lock; + auto free_header = reinterpret_cast( reinterpret_cast(block) - sizeof(malloc_header_chunk));