share/utf8/charset.c: Cleanup realloc() usage

This version should be logically identical to the previous version
but prevents a false-positive from the cppcheck static analysis
tool.
This commit is contained in:
Erik de Castro Lopo
2017-01-19 20:28:18 +11:00
parent 3be455142b
commit ada48f59f5

View File

@@ -485,7 +485,7 @@ int charset_convert(const char *fromcode, const char *tocode,
{
int ret = 0;
struct charset *charset1, *charset2;
char *tobuf, *p, *newbuf;
char *tobuf, *p;
int i, j, wc;
charset1 = charset_find(fromcode);
@@ -520,8 +520,10 @@ int charset_convert(const char *fromcode, const char *tocode,
*tolen = p - tobuf;
*p++ = '\0';
if (to) {
newbuf = realloc(tobuf, p - tobuf);
*to = newbuf ? newbuf : tobuf;
char *tobuf_saved = tobuf;
*to = realloc(tobuf, p - tobuf);
if (*to == NULL)
*to = tobuf_saved;
}
else
free(tobuf);