ffmpeg: Fix stts_data memory allocation
authorXiaohan Wang <xhwang@chromium.org>
Tue, 13 Feb 2018 22:45:14 +0000 (14:45 -0800)
committerMichael Niedermayer <michael@niedermayer.cc>
Fri, 9 Mar 2018 01:39:21 +0000 (02:39 +0100)
In this loop, |i| is the "index". And the memory allocated should be at
least the current "count", which is |i + 1|.

BUG=801821

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/mov.c

index 7002a82..ab03a99 100644 (file)
@@ -2859,7 +2859,7 @@ static int mov_read_stts(MOVContext *c, AVIOContext *pb, MOVAtom atom)
     for (i = 0; i < entries && !pb->eof_reached; i++) {
         int sample_duration;
         unsigned int sample_count;
-        unsigned min_entries = FFMIN(FFMAX(i, 1024 * 1024), entries);
+        unsigned int min_entries = FFMIN(FFMAX(i + 1, 1024 * 1024), entries);
         MOVStts *stts_data = av_fast_realloc(sc->stts_data, &alloc_size,
                                              min_entries * sizeof(*sc->stts_data));
         if (!stts_data) {