[FFmpeg-cvslog] mov: Discard invalid CTTS.

Michael Niedermayer git at videolan.org
Thu Mar 8 21:40:37 CET 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Thu Mar  8 07:10:57 2012 +0100| [4093220029a4d77f272c491e9299680480a08c00] | committer: Michael Niedermayer

mov: Discard invalid CTTS.

Fixes Ticket385

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4093220029a4d77f272c491e9299680480a08c00
---

 libavformat/mov.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 3ca1f97..de290aa 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+2<entries) {
+            av_log(c->fc, AV_LOG_WARNING, "CTTS invalid\n");
+            av_freep(&sc->ctts_data);
+            sc->ctts_count = 0;
+            return 0;
+        }
+
         if (duration < 0 && i+2<entries)
             sc->dts_shift = FFMAX(sc->dts_shift, -duration);
     }



More information about the ffmpeg-cvslog mailing list