From: Arnaud Giersch Date: Mon, 7 Nov 2011 22:04:05 +0000 (+0100) Subject: Fix memory leak in xbt_cfg_set_parse(). X-Git-Tag: exp_20120216~423 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/f27095dde915e56f6ff0c90269d05585c26fbd72 Fix memory leak in xbt_cfg_set_parse(). --- diff --git a/src/xbt/config.c b/src/xbt/config.c index 13df108f0f..9fbffa5609 100644 --- a/src/xbt/config.c +++ b/src/xbt/config.c @@ -660,10 +660,17 @@ void xbt_cfg_set_parse(xbt_cfg_t cfg, const char *options) CATCH(e) { if (e.category == not_found_error) { xbt_ex_free(e); - name = xbt_strdup(name); - free(optionlist_cpy); - THROWF(not_found_error, 0, - "No registered variable corresponding to '%s'.", name); + TRY { + THROWF(not_found_error, 0, + "No registered variable corresponding to '%s'.", name); + } + TRY_CLEANUP { + /* name points into optionlist_cpy, it cannot be freed before */ + free(optionlist_cpy); + } + CATCH_ANONYMOUS { + RETHROW; + } } free(optionlist_cpy); RETHROW;