diff options
author | Martin Storsjö <martin@martin.st> | 2014-01-13 14:43:23 +0200 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2014-02-01 23:51:45 -0500 |
commit | 44079902c49e526f464bb4eb855665e1af867e91 (patch) | |
tree | f6025a38e736e128b0703e2d9595d9a0e3a9a879 /libavformat | |
parent | f728782c0d30433efa11f1238a16aed994e9b563 (diff) | |
download | ffmpeg-44079902c49e526f464bb4eb855665e1af867e91.tar.gz |
mov: Free intermediate arrays in the normal cleanup function
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ö <martin@martin.st>
(cherry picked from commit d51f09962d5b4bc999fb70c040f330dd1873212e)
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/mov.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c index 8c547067b7..6f1ea6c227 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -2758,6 +2758,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) { |