summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXidorn Quan <quanxunzhen@gmail.com>2012-12-02 15:42:31 +0800
committerGrigori Goronzy <greg@monster>2012-12-14 23:17:59 +0100
commit7e4553211048d0cdf5f23fb7532e2d619f6edccb (patch)
treedbfd45cf3489a9611da9b3f0b62956201ab6cd0f
parentba0459b2a64ee2170c4c0e084633a57ec74dbfd0 (diff)
downloadlibass-7e4553211048d0cdf5f23fb7532e2d619f6edccb.tar.bz2
libass-7e4553211048d0cdf5f23fb7532e2d619f6edccb.tar.xz
Fix leaks when error occurs.
-rw-r--r--libass/ass.c5
1 files changed, 4 insertions, 1 deletions
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);