From b97aa8c4138dbbde8d81ff6a635eef0a304f0efe Mon Sep 17 00:00:00 2001 From: Marion Guthmuller Date: Thu, 10 Jan 2013 20:09:02 +0100 Subject: [PATCH] model-checker : fix memory free --- src/mc/mc_compare.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/mc/mc_compare.c b/src/mc/mc_compare.c index 07550eb10a..36ff8b95bc 100644 --- a/src/mc/mc_compare.c +++ b/src/mc/mc_compare.c @@ -539,8 +539,10 @@ static int compare_local_variables(char *s1, char *s2, xbt_dynar_t heap_equals){ s_tokens2 = xbt_str_split(xbt_dynar_get_as(tokens2, cursor, char *), "="); if(xbt_dynar_length(s_tokens1) > 1 && xbt_dynar_length(s_tokens2) > 1){ if((strcmp(xbt_dynar_get_as(s_tokens1, 0, char *), "ip") == 0) && (strcmp(xbt_dynar_get_as(s_tokens2, 0, char *), "ip") == 0)){ - ip1 = xbt_dynar_get_as(s_tokens1, 1, char *); - ip2 = xbt_dynar_get_as(s_tokens2, 1, char *); + xbt_free(ip1); + xbt_free(ip2); + ip1 = strdup(xbt_dynar_get_as(s_tokens1, 1, char *)); + ip2 = strdup(xbt_dynar_get_as(s_tokens2, 1, char *)); } if(strcmp(xbt_dynar_get_as(s_tokens1, 1, char *), xbt_dynar_get_as(s_tokens2, 1, char *)) != 0){ /* Ignore this variable ? */ @@ -559,15 +561,20 @@ static int compare_local_variables(char *s1, char *s2, xbt_dynar_t heap_equals){ xbt_dynar_free(&s_tokens2); xbt_dynar_free(&tokens1); xbt_dynar_free(&tokens2); + xbt_free(ip1); + xbt_free(ip2); return 1; } } } xbt_dynar_free(&s_tokens1); xbt_dynar_free(&s_tokens2); + cursor++; } + xbt_free(ip1); + xbt_free(ip2); xbt_dynar_free(&tokens1); xbt_dynar_free(&tokens2); return 0; -- 2.20.1