Bläddra i källkod

Kernel: Sanitize memory coming in/out of the slab allocator

We were using SANITIZE_KMALLOC which was never defined in this .cpp
file, oops. Now we actually scrub on slab_alloc() and slab_dealloc().
Andreas Kling 5 år sedan
förälder
incheckning
987dbedf4a
1 ändrade filer med 4 tillägg och 2 borttagningar
  1. 4 2
      Kernel/Heap/SlabAllocator.cpp

+ 4 - 2
Kernel/Heap/SlabAllocator.cpp

@@ -29,6 +29,8 @@
 #include <Kernel/Heap/kmalloc.h>
 #include <Kernel/VM/Region.h>
 
+#define SANITIZE_SLABS
+
 namespace Kernel {
 
 template<size_t templated_slab_size>
@@ -63,7 +65,7 @@ public:
         m_freelist = m_freelist->next;
         ++m_num_allocated;
         --m_num_free;
-#ifdef SANITIZE_KMALLOC
+#ifdef SANITIZE_SLABS
         memset(ptr, SLAB_ALLOC_SCRUB_BYTE, slab_size());
 #endif
         return ptr;
@@ -78,7 +80,7 @@ public:
             return;
         }
         ((FreeSlab*)ptr)->next = m_freelist;
-#ifdef SANITIZE_KMALLOC
+#ifdef SANITIZE_SLABS
         if (slab_size() > sizeof(FreeSlab*))
             memset(((FreeSlab*)ptr)->padding, SLAB_DEALLOC_SCRUB_BYTE, sizeof(FreeSlab::padding));
 #endif