misc: address sanitizer: fix instrumentation
[vpp.git] / src / vppinfra / mem_dlmalloc.c
index 99f1c04..68901a5 100644 (file)
@@ -19,6 +19,7 @@
 #include <vppinfra/lock.h>
 #include <vppinfra/hash.h>
 #include <vppinfra/elf_clib.h>
+#include <vppinfra/sanitizer.h>
 
 void *clib_per_cpu_mheaps[CLIB_MAX_MHEAPS];
 
@@ -214,6 +215,8 @@ clib_mem_init (void *memory, uword memory_size)
   else
     heap = create_mspace (memory_size, 1 /* locked */ );
 
+  CLIB_MEM_POISON (mspace_least_addr (heap), mspace_footprint (heap));
+
   clib_mem_set_heap (heap);
 
   if (mheap_trace_main.lock == 0)
@@ -383,6 +386,21 @@ clib_mem_usage (clib_mem_usage_t * u)
   clib_warning ("unimp");
 }
 
+void
+mheap_usage (void *heap, clib_mem_usage_t * usage)
+{
+  struct dlmallinfo mi = mspace_mallinfo (heap);
+
+  /* TODO: Fill in some more values */
+  usage->object_count = 0;
+  usage->bytes_total = mi.arena;
+  usage->bytes_overhead = 0;
+  usage->bytes_max = 0;
+  usage->bytes_used = mi.uordblks;
+  usage->bytes_free = mi.fordblks;
+  usage->bytes_free_reclaimed = 0;
+}
+
 /* Call serial number for debugger breakpoints. */
 uword clib_mem_validate_serial = 0;