From 933d551d31475edf17d4a8440844d58096e0d499 Mon Sep 17 00:00:00 2001 From: Marion Guthmuller Date: Fri, 19 Oct 2012 09:28:45 +0200 Subject: [PATCH 1/1] model-checker : fix memory leaks in heap comparison --- src/xbt/mmalloc/mm_diff.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/xbt/mmalloc/mm_diff.c b/src/xbt/mmalloc/mm_diff.c index efec23cec3..2e0cf4c1df 100644 --- a/src/xbt/mmalloc/mm_diff.c +++ b/src/xbt/mmalloc/mm_diff.c @@ -480,6 +480,8 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac mmalloc_backtrace_block_display((void*)heapinfo1, i); } nb_diff1++; + }else{ + xbt_free(heapinfo1[i].busy_block.equal_to); } } } @@ -494,6 +496,8 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac mmalloc_backtrace_fragment_display((void*)heapinfo1, i, j); } nb_diff1++; + }else{ + xbt_free(heapinfo1[i].busy_frag.equal_to[j]); } } } @@ -516,6 +520,8 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac mmalloc_backtrace_block_display((void*)heapinfo2, i); } nb_diff2++; + }else{ + xbt_free(heapinfo2[i].busy_block.equal_to); } } } @@ -530,6 +536,8 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac mmalloc_backtrace_fragment_display((void*)heapinfo2, i, j); } nb_diff2++; + }else{ + xbt_free(heapinfo2[i].busy_frag.equal_to[j]); } } } @@ -540,7 +548,7 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac XBT_DEBUG("Different blocks or fragments in heap2 : %d", nb_diff2); xbt_dynar_free(&previous); - + return ((nb_diff1 > 0) || (nb_diff2 > 0)); } -- 2.20.1