Browse Source

Merge pull request #413 from grissiom/fix-memheap

memheap: check against over written in rt_memheap_free
Bernard Xiong 10 years ago
parent
commit
2475568190
1 changed files with 2 additions and 0 deletions
  1. 2 0
      src/memheap.c

+ 2 - 0
src/memheap.c

@@ -517,6 +517,8 @@ void rt_memheap_free(void *ptr)
 
 
     /* check magic */
     /* check magic */
     RT_ASSERT((header_ptr->magic & RT_MEMHEAP_MASK) == RT_MEMHEAP_MAGIC);
     RT_ASSERT((header_ptr->magic & RT_MEMHEAP_MASK) == RT_MEMHEAP_MAGIC);
+    /* check whether this block of memory has been over-written. */
+    RT_ASSERT((header_ptr->next->magic & RT_MEMHEAP_MASK) == RT_MEMHEAP_MAGIC);
 
 
     /* get pool ptr */
     /* get pool ptr */
     heap = header_ptr->pool_ptr;
     heap = header_ptr->pool_ptr;