Fix double-free introduced by 577dc345

* src/utf8.c (utf8_convert): Don't store freed value in *output
This commit is contained in:
Sergey Poznyakoff
2018-07-31 15:57:11 +03:00
parent c1b569d9d6
commit 110e3bd7a6
+4 -3
View File
@@ -65,7 +65,7 @@ bool
utf8_convert (bool to_utf, char const *input, char **output)
{
char ICONV_CONST *ib;
char *ob;
char *ob, *ret;
size_t inlen;
size_t outlen;
iconv_t cd = utf8_init (to_utf);
@@ -80,14 +80,15 @@ utf8_convert (bool to_utf, char const *input, char **output)
inlen = strlen (input) + 1;
outlen = inlen * MB_LEN_MAX + 1;
ob = *output = xmalloc (outlen);
ob = ret = xmalloc (outlen);
ib = (char ICONV_CONST *) input;
if (iconv (cd, &ib, &inlen, &ob, &outlen) == -1)
{
free (*output);
free (ret);
return false;
}
*ob = 0;
*output = ret;
return true;
}