diff options
author | Steven Liu <lq@chinaffmpeg.org> | 2019-10-10 10:07:54 +0800 |
---|---|---|
committer | Steven Liu <lq@chinaffmpeg.org> | 2019-10-28 14:26:16 +0800 |
commit | a3655a5cb2abf3bf2c8a2fa596643059de3396e4 (patch) | |
tree | 9b34796bdec181e300d1cf7529c775a9ca940164 /libavformat | |
parent | 991cf95fdeebc3aff34c3dd094df0589f7a02f68 (diff) | |
download | ffmpeg-a3655a5cb2abf3bf2c8a2fa596643059de3396e4.tar.gz |
avformat/smacker: fix memleak when avformat_new_stream failed
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/smacker.c | 10 |
1 files changed, 8 insertions, 2 deletions
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) { |