From: Gabriel Corona Date: Fri, 7 Feb 2014 10:56:08 +0000 (+0100) Subject: [mc] Fix segfaults when type->name==NULL X-Git-Tag: v3_11~199^2~2^2~26^2~4 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/4f17c639fb7c5e45bdece89eb9cc8238a70e36b1 [mc] Fix segfaults when type->name==NULL --- diff --git a/src/xbt/mmalloc/mm_diff.c b/src/xbt/mmalloc/mm_diff.c index c286c5c958..c9154e0e84 100644 --- a/src/xbt/mmalloc/mm_diff.c +++ b/src/xbt/mmalloc/mm_diff.c @@ -779,7 +779,7 @@ static int compare_heap_area_with_type(void *real_area1, void *real_area2, void switch(type->type){ case DW_TAG_base_type: - if(strcmp(type->name, "char") == 0){ /* String, hence random (arbitrary ?) size */ + if(type->name!=NULL && strcmp(type->name, "char") == 0){ /* String, hence random (arbitrary ?) size */ if(real_area1 == real_area2) return -1; else @@ -1040,7 +1040,7 @@ int compare_heap_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dict_t type = xbt_dict_get_or_null(all_types, type->dw_type_id); } } - if((type->byte_size == DW_TAG_pointer_type) || ((type->type == DW_TAG_base_type) && (!strcmp(type->name, "char")))) + if((type->byte_size == DW_TAG_pointer_type) || ((type->type == DW_TAG_base_type) && type->name!=NULL && (!strcmp(type->name, "char")))) type_size = -1; else type_size = type->byte_size; @@ -1067,7 +1067,7 @@ int compare_heap_area(void *area1, void* area2, xbt_dynar_t previous, xbt_dict_t } if(type_size != -1){ - if(type_size != heapinfo1[block1].busy_block.busy_size && type_size != heapinfo2[block2].busy_block.busy_size && !strcmp(type->name, "s_smx_context")){ + if(type_size != heapinfo1[block1].busy_block.busy_size && type_size != heapinfo2[block2].busy_block.busy_size && type->name!=NULL && !strcmp(type->name, "s_smx_context")){ if(match_pairs){ match_equals(previous); xbt_dynar_free(&previous);