From 282c3b6e08efc5dcfb3abae1a62133b064716863 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 12 Mar 2025 08:28:29 -0400 Subject: [PATCH] kernel/slab: Set write protection on MemoryManager areas. The MemoryManager maps and unmaps pages manually, so this isn't strictly necessary, but it helps with memory accounting in e.g. ProcessController. Fixes the kernel_team disappearing from ProcessController's list (and also having too-low memory amounts) as noticed in #19460. --- src/system/kernel/slab/MemoryManager.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/system/kernel/slab/MemoryManager.cpp b/src/system/kernel/slab/MemoryManager.cpp index 76f825ce32..fece68df08 100644 --- a/src/system/kernel/slab/MemoryManager.cpp +++ b/src/system/kernel/slab/MemoryManager.cpp @@ -1335,6 +1335,7 @@ MemoryManager::_AllocateArea(uint32 flags, Area*& _area) (addr_t)area, (addr_t)areaBase + SLAB_AREA_SIZE - 1); vmArea = VMAreas::Lookup(areaID); + vmArea->protection = B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA; status_t error = _MapChunk(vmArea, (addr_t)area, kAreaAdminSize, pagesNeededToMap, flags); if (error != B_OK) {