diff --git a/src/vlibmemory/vlib_api_cli.c b/src/vlibmemory/vlib_api_cli.c
index 3f8e1c9..db48711 100755
--- a/src/vlibmemory/vlib_api_cli.c
+++ b/src/vlibmemory/vlib_api_cli.c
@@ -442,6 +442,8 @@
     }
   close (fd);
 
+  CLIB_MEM_UNPOISON (hp, file_size);
+
   nitems = ntohl (hp->nitems);
 
   if (last_index == (u32) ~ 0)
@@ -454,6 +456,7 @@
       vlib_cli_output (vm, "Range (%d, %d) outside file range (0, %d)\n",
 		       first_index, last_index, nitems - 1);
       munmap (hp, file_size);
+      CLIB_MEM_POISON (hp, file_size);
       return;
     }
   if (hp->wrapped)
@@ -465,6 +468,7 @@
       saved_print_handlers = (void **) vec_dup (am->msg_print_handlers);
       vl_msg_api_custom_dump_configure (am);
     }
+
   msg = (u8 *) (hp + 1);
 
   u16 *msgid_vec = 0;
@@ -503,6 +507,7 @@
 	{
 	  vlib_cli_output (vm, "Ugh: msg id %d no trace config\n", msg_id);
 	  munmap (hp, file_size);
+	  CLIB_MEM_POISON (hp, file_size);
 	  return;
 	}
       msg += size;
@@ -534,6 +539,7 @@
 	{
 	  vlib_cli_output (vm, "Ugh: msg id %d no trace config\n", msg_id);
 	  munmap (hp, file_size);
+	  CLIB_MEM_POISON (hp, file_size);
 	  vec_free (tmpbuf);
 	  am->replay_in_progress = 0;
 	  return;
@@ -557,6 +563,7 @@
 	    {
 	      vlib_cli_output (vm, "Ugh: msg id %d no endian swap\n", msg_id);
 	      munmap (hp, file_size);
+	      CLIB_MEM_POISON (hp, file_size);
 	      vec_free (tmpbuf);
 	      am->replay_in_progress = 0;
 	      return;
@@ -659,6 +666,7 @@
     }
 
   munmap (hp, file_size);
+  CLIB_MEM_POISON (hp, file_size);
   vec_free (tmpbuf);
   am->replay_in_progress = 0;
 }
diff --git a/src/vppinfra/dlmalloc.c b/src/vppinfra/dlmalloc.c
index 451666e..13f0dff 100644
--- a/src/vppinfra/dlmalloc.c
+++ b/src/vppinfra/dlmalloc.c
@@ -4139,6 +4139,7 @@
   return 0;
 }
 
+CLIB_NOSANITIZE_ADDR
 void *mspace_least_addr (mspace msp)
 {
   mstate ms = (mstate) msp;
@@ -4152,6 +4153,7 @@
   disable_expand (ms);
 }
 
+CLIB_NOSANITIZE_ADDR
 int mspace_enable_disable_trace (mspace msp, int enable)
 {
   mstate ms = (mstate)msp;
diff --git a/src/vppinfra/mem_dlmalloc.c b/src/vppinfra/mem_dlmalloc.c
index 5628e27..68901a5 100644
--- a/src/vppinfra/mem_dlmalloc.c
+++ b/src/vppinfra/mem_dlmalloc.c
@@ -215,12 +215,13 @@
   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)
     clib_spinlock_init (&mheap_trace_main.lock);
 
-  CLIB_MEM_POISON (mspace_least_addr (heap), mspace_footprint (heap));
   return heap;
 }
 
