KernelHeap: do not crash the entire system
Previously, calling free_virtual_page(s) would cause an assertion fail if the address was not in the kernel heap range. Now, we just return.
This commit is contained in:
parent
ad9c7af0bf
commit
4021cb3ac0
@ -70,7 +70,7 @@ uint64_t KernelHeap::request_virtual_pages(uint64_t count)
|
||||
|
||||
void KernelHeap::free_virtual_page(uint64_t address)
|
||||
{
|
||||
ASSERT(address >= ALLOC_BASE && address < ALLOC_END);
|
||||
if (address < ALLOC_BASE || address >= ALLOC_END) return;
|
||||
uint64_t index = (address - ALLOC_BASE) / PAGE_SIZE;
|
||||
bitmap_set(index, false);
|
||||
if (start_index > index) start_index = index;
|
||||
@ -78,7 +78,7 @@ void KernelHeap::free_virtual_page(uint64_t address)
|
||||
|
||||
void KernelHeap::free_virtual_pages(uint64_t address, uint64_t count)
|
||||
{
|
||||
ASSERT(address >= ALLOC_BASE && address < ALLOC_END);
|
||||
if (address < ALLOC_BASE || address >= ALLOC_END) return;
|
||||
uint64_t index = (address - ALLOC_BASE) / PAGE_SIZE;
|
||||
for (uint64_t i = 0; i < count; i++) { bitmap_set(index + i, false); }
|
||||
if (start_index > index) start_index = index;
|
||||
|
Loading…
Reference in New Issue
Block a user