Forráskód Böngészése

Kernel: Scrub kmalloc slabs when allocated and deallocated

This matches the behavior of the generic subheaps (and the old slab
allocator implementation.)
Andreas Kling 3 éve
szülő
commit
63e1b904a4
1 módosított fájl, 4 hozzáadás és 0 törlés
  1. 4 0
      Kernel/Heap/kmalloc.cpp

+ 4 - 0
Kernel/Heap/kmalloc.cpp

@@ -119,11 +119,15 @@ public:
         auto* ptr = block->allocate();
         if (block->is_full())
             m_full_blocks.append(*block);
+
+        memset(ptr, KMALLOC_SCRUB_BYTE, m_slab_size);
         return ptr;
     }
 
     void deallocate(void* ptr)
     {
+        memset(ptr, KFREE_SCRUB_BYTE, m_slab_size);
+
         auto* block = (KmallocSlabBlock*)((FlatPtr)ptr & KmallocSlabBlock::block_mask);
         bool block_was_full = block->is_full();
         block->deallocate(ptr);