[FFmpeg-cvslog] avformat/oggparsetheora: Check duration to be not AV_NOPTS_VALUE ( and positive) before use

Michael Niedermayer git at videolan.org
Fri Dec 4 14:16:45 CET 2015


ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Fri Dec  4 13:46:53 2015 +0100| [0c1d62ab9d757d546fafca366d776524e7bb9893] | committer: Michael Niedermayer

avformat/oggparsetheora: Check duration to be not AV_NOPTS_VALUE (and positive) before use

Fixes: 1536b9b096a8f95b742bae9d3d761cc6/signal_sigsegv_294aaed_7322_4fad88a38dc8952dc20dcb60c1895758.ogg

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

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

 libavformat/oggparsetheora.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/oggparsetheora.c b/libavformat/oggparsetheora.c
index e92d4c5..6e6a362 100644
--- a/libavformat/oggparsetheora.c
+++ b/libavformat/oggparsetheora.c
@@ -191,7 +191,7 @@ static int theora_packet(AVFormatContext *s, int idx)
         os->lastpts = os->lastdts   = theora_gptopts(s, idx, os->granule, NULL) - duration;
         if(s->streams[idx]->start_time == AV_NOPTS_VALUE) {
             s->streams[idx]->start_time = os->lastpts;
-            if (s->streams[idx]->duration)
+            if (s->streams[idx]->duration > 0)
                 s->streams[idx]->duration -= s->streams[idx]->start_time;
         }
     }



More information about the ffmpeg-cvslog mailing list