diff --git a/libavformat/mov.c b/libavformat/mov.c index 3ca1f97658..de290aa70c 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -1774,6 +1774,14 @@ static int mov_read_ctts(MOVContext *c, AVIOContext *pb, MOVAtom atom) sc->ctts_data[i].count = count; sc->ctts_data[i].duration= duration; + + if (FFABS(duration) > (1<<28) && i+2fc, AV_LOG_WARNING, "CTTS invalid\n"); + av_freep(&sc->ctts_data); + sc->ctts_count = 0; + return 0; + } + if (duration < 0 && i+2dts_shift = FFMAX(sc->dts_shift, -duration); }