Poison freed memory objects 47/13847/2
authorDave Barach <dave@barachs.net>
Tue, 31 Jul 2018 14:39:30 +0000 (10:39 -0400)
committerFlorin Coras <florin.coras@gmail.com>
Tue, 31 Jul 2018 20:37:47 +0000 (20:37 +0000)
When compiled w/ -DCLIB_DEBUG=1, paint 0x13 across freed memory
blocks. Should result in a characteristic SIGSEGV if someone
dereferences a pointer in a freed vector element, etc.

Change-Id: I5f78970f4342310bfbe7adeddb56feff21f0de2c
Signed-off-by: Dave Barach <dave@barachs.net>
src/vppinfra/dlmalloc.c

index 8ae92cf..1bc8f65 100644 (file)
@@ -4271,6 +4271,14 @@ void mspace_put (mspace msp, void *p_arg)
       mheap_put_trace ((u64)p_arg, psize);
     }
 
+#if CLIB_DEBUG > 0
+  /* Poison the object */
+  {
+    size_t psize = mspace_usable_size (object_header);
+    memset (object_header, 0x13, psize);
+  }
+#endif
+
   /* And free it... */
   mspace_free (msp, object_header);
 }