From 1c7bf5d41737984907e8bad1dc832eb6cb1d6288 Mon Sep 17 00:00:00 2001 From: Dave Barach Date: Tue, 31 Jul 2018 10:39:30 -0400 Subject: [PATCH] Poison freed memory objects 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 --- src/vppinfra/dlmalloc.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/vppinfra/dlmalloc.c b/src/vppinfra/dlmalloc.c index 8ae92cf566c..1bc8f656b66 100644 --- a/src/vppinfra/dlmalloc.c +++ b/src/vppinfra/dlmalloc.c @@ -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); } -- 2.16.6