From d51f09962d5b4bc999fb70c040f330dd1873212e Mon Sep 17 00:00:00 2001 From: Martin Storsjö Date: Mon, 13 Jan 2014 14:43:23 +0200 Subject: mov: Free intermediate arrays in the normal cleanup function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These arrays are normally freed at the end of mov_read_trak, but make sure they're freed in case mov_read_trak returned early (due to errors) or in case the atoms that allocate arrays are encountered at some other point than within a trak (which we don't have checks against). Sample-Id: 00000496-google Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Martin Storsjö --- libavformat/mov.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'libavformat') diff --git a/libavformat/mov.c b/libavformat/mov.c index 9b019e183b..b7823bf2f6 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -2829,6 +2829,14 @@ static int mov_read_close(AVFormatContext *s) av_freep(&sc->drefs); if (sc->pb && sc->pb != s->pb) avio_close(sc->pb); + + av_freep(&sc->chunk_offsets); + av_freep(&sc->stsc_data); + av_freep(&sc->sample_sizes); + av_freep(&sc->keyframes); + av_freep(&sc->stts_data); + av_freep(&sc->stps_data); + av_freep(&sc->rap_group); } if (mov->dv_demux) { -- cgit v1.2.3