From a3655a5cb2abf3bf2c8a2fa596643059de3396e4 Mon Sep 17 00:00:00 2001 From: Steven Liu Date: Thu, 10 Oct 2019 10:07:54 +0800 Subject: avformat/smacker: fix memleak when avformat_new_stream failed Signed-off-by: Steven Liu --- libavformat/smacker.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'libavformat/smacker.c') diff --git a/libavformat/smacker.c b/libavformat/smacker.c index b5c858aa9b..239894dad0 100644 --- a/libavformat/smacker.c +++ b/libavformat/smacker.c @@ -172,8 +172,11 @@ static int smacker_read_header(AVFormatContext *s) /* init video codec */ st = avformat_new_stream(s, NULL); - if (!st) + if (!st) { + av_freep(&smk->frm_size); + av_freep(&smk->frm_flags); return AVERROR(ENOMEM); + } smk->videoindex = st->index; st->codecpar->width = smk->width; st->codecpar->height = smk->height; @@ -195,8 +198,11 @@ static int smacker_read_header(AVFormatContext *s) smk->indexes[i] = -1; if (smk->rates[i]) { ast[i] = avformat_new_stream(s, NULL); - if (!ast[i]) + if (!ast[i]) { + av_freep(&smk->frm_size); + av_freep(&smk->frm_flags); return AVERROR(ENOMEM); + } smk->indexes[i] = ast[i]->index; ast[i]->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; if (smk->aflags[i] & SMK_AUD_BINKAUD) { -- cgit v1.2.3