From b042e2bf98b0e320ee55213252bac1a0260fafc3 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 20 Sep 2010 21:50:21 -0700 Subject: [PATCH] i18n: Avoid memory leak when create_iconv() fails. --- src/libpspp/i18n.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libpspp/i18n.c b/src/libpspp/i18n.c index eb082c5d94..3735e95d84 100644 --- a/src/libpspp/i18n.c +++ b/src/libpspp/i18n.c @@ -137,6 +137,11 @@ recode_string_pool (const char *to, const char *from, if (from == NULL) from = default_encoding; + conv = create_iconv (to, from); + + if ( (iconv_t) -1 == conv ) + return xstrdup (text); + for ( outbufferlength = 1 ; outbufferlength != 0; outbufferlength <<= 1 ) if ( outbufferlength > length) break; @@ -148,11 +153,6 @@ recode_string_pool (const char *to, const char *from, inbytes = length; - conv = create_iconv (to, from); - - if ( (iconv_t) -1 == conv ) - return xstrdup (text); - do { const char *ip = text; result = iconv (conv, (ICONV_CONST char **) &text, &inbytes, -- 2.30.2