From b49c165c5919dae49ae1520fab593fb4869f02c2 Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Tue, 6 Dec 2011 10:19:11 +0300 Subject: [PATCH] (mc_config_normalize_before_save): fixed possible memory leak. Signed-off-by: Andrew Borodin --- lib/mcconfig/set.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/mcconfig/set.c b/lib/mcconfig/set.c index ee375f2d6..b60212e7c 100644 --- a/lib/mcconfig/set.c +++ b/lib/mcconfig/set.c @@ -43,6 +43,7 @@ mc_config_normalize_before_save (const gchar * value) { GIConv conv; GString *buffer; + gboolean ok; if (mc_global.utf8_display) return g_strdup (value); @@ -53,13 +54,15 @@ mc_config_normalize_before_save (const gchar * value) buffer = g_string_new (""); - if (str_convert (conv, value, buffer) == ESTR_FAILURE) + ok = (str_convert (conv, value, buffer) != ESTR_FAILURE); + str_close_conv (conv); + + if (!ok) { g_string_free (buffer, TRUE); return g_strdup (value); } - str_close_conv (conv); return g_string_free (buffer, FALSE); }