From 6f84c1e9078b2133f3cb75d76f089196a7df96a9 Mon Sep 17 00:00:00 2001 From: Steven Liu Date: Wed, 9 Oct 2019 11:56:22 +0800 Subject: avformat/jvdec: fix memleak when read_header failed Reviewed-by: Peter Ross Signed-off-by: Steven Liu --- libavformat/jvdec.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavformat/jvdec.c b/libavformat/jvdec.c index 18c81f0de7..17ada7b0f1 100644 --- a/libavformat/jvdec.c +++ b/libavformat/jvdec.c @@ -113,9 +113,10 @@ static int read_header(AVFormatContext *s) return AVERROR(ENOMEM); jv->frames = av_malloc(ast->nb_index_entries * sizeof(JVFrame)); - if (!jv->frames) + if (!jv->frames) { + av_freep(&ast->index_entries); return AVERROR(ENOMEM); - + } offset = 0x68 + ast->nb_index_entries * 16; for (i = 0; i < ast->nb_index_entries; i++) { AVIndexEntry *e = ast->index_entries + i; @@ -137,6 +138,8 @@ static int read_header(AVFormatContext *s) - jvf->palette_size < 0) { if (s->error_recognition & AV_EF_EXPLODE) { read_close(s); + av_freep(&jv->frames); + av_freep(&ast->index_entries); return AVERROR_INVALIDDATA; } jvf->audio_size = -- cgit v1.2.3