[FFmpeg-cvslog] rmdec: Validate the fps value

Martin Storsjö git at videolan.org
Thu Sep 19 10:49:59 CEST 2013


ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Mon Sep 16 20:58:38 2013 +0300| [0f310a6f333b016d336674d086045e8473fdf918] | committer: Martin Storsjö

rmdec: Validate the fps value

Abort if it is invalid if strict error checking has been requested.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable at libav.org
Signed-off-by: Martin Storsjö <martin at martin.st>

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

 libavformat/rmdec.c |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c
index afa37de..d61f569 100644
--- a/libavformat/rmdec.c
+++ b/libavformat/rmdec.c
@@ -332,8 +332,13 @@ ff_rm_read_mdpr_codecdata (AVFormatContext *s, AVIOContext *pb,
         if ((ret = rm_read_extradata(pb, st->codec, codec_data_size - (avio_tell(pb) - codec_pos))) < 0)
             return ret;
 
-        av_reduce(&st->avg_frame_rate.den, &st->avg_frame_rate.num,
-                  0x10000, fps, (1 << 30) - 1);
+        if (fps > 0) {
+            av_reduce(&st->avg_frame_rate.den, &st->avg_frame_rate.num,
+                      0x10000, fps, (1 << 30) - 1);
+        } else if (s->error_recognition & AV_EF_EXPLODE) {
+            av_log(s, AV_LOG_ERROR, "Invalid framerate\n");
+            return AVERROR_INVALIDDATA;
+        }
     }
 
 skip:



More information about the ffmpeg-cvslog mailing list