From 7e4553211048d0cdf5f23fb7532e2d619f6edccb Mon Sep 17 00:00:00 2001 From: Xidorn Quan Date: Sun, 2 Dec 2012 15:42:31 +0800 Subject: Fix leaks when error occurs. --- libass/ass.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libass/ass.c b/libass/ass.c index bc05d69..fdeb93c 100644 --- a/libass/ass.c +++ b/libass/ass.c @@ -988,7 +988,9 @@ static char *sub_recode(ASS_Library *library, char *data, size_t size, oleft += size; } else { ass_msg(library, MSGL_WARN, "Error recoding file"); - return NULL; + free(outbuf); + outbuf = NULL; + goto out; } } else if (clear) break; @@ -996,6 +998,7 @@ static char *sub_recode(ASS_Library *library, char *data, size_t size, outbuf[osize - oleft - 1] = 0; } +out: if (icdsc != (iconv_t) (-1)) { (void) iconv_close(icdsc); icdsc = (iconv_t) (-1); -- cgit v1.2.3