mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-28 20:53:54 +02:00
avformat/swfdec: Fix memleaks on error
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
184fc42b46
commit
28dc0c20cc
@ -158,13 +158,18 @@ static int swf_read_header(AVFormatContext *s)
|
||||
swf->zbuf_out = av_malloc(ZBUF_SIZE);
|
||||
swf->zpb = avio_alloc_context(swf->zbuf_out, ZBUF_SIZE, 0, s,
|
||||
zlib_refill, NULL, NULL);
|
||||
if (!swf->zbuf_in || !swf->zbuf_out || !swf->zpb)
|
||||
if (!swf->zbuf_in || !swf->zbuf_out || !swf->zpb) {
|
||||
av_freep(&swf->zbuf_in);
|
||||
av_freep(&swf->zbuf_out);
|
||||
avio_context_free(&swf->zpb);
|
||||
return AVERROR(ENOMEM);
|
||||
}
|
||||
swf->zpb->seekable = 0;
|
||||
if (inflateInit(&swf->zstream) != Z_OK) {
|
||||
av_log(s, AV_LOG_ERROR, "Unable to init zlib context\n");
|
||||
av_freep(&swf->zbuf_in);
|
||||
av_freep(&swf->zbuf_out);
|
||||
avio_context_free(&swf->zpb);
|
||||
return AVERROR(EINVAL);
|
||||
}
|
||||
pb = swf->zpb;
|
||||
|
Loading…
Reference in New Issue
Block a user