]> git.sesse.net Git - ffmpeg/commitdiff
avformat/swfenc: Check frama rate before writing it
authorMichael Niedermayer <michael@niedermayer.cc>
Thu, 17 Dec 2015 00:23:43 +0000 (01:23 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Thu, 17 Dec 2015 01:07:41 +0000 (02:07 +0100)
Fixes assertion failure with ffserver

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

index 56d9879017717be2b06efcb595fd2dfcf9f76647..8d5933e9bf05ef0aa1f8c09bd1d196f31258ec14 100644 (file)
@@ -256,6 +256,10 @@ static int swf_write_header(AVFormatContext *s)
                                       (will be patched if not streamed) */
 
     put_swf_rect(pb, 0, width * 20, 0, height * 20);
+    if ((rate * 256LL) / rate_base >= (1<<16)) {
+        av_log(s, AV_LOG_ERROR, "Invalid (too large) frame rate %d/%d\n", rate, rate_base);
+        return AVERROR(EINVAL);
+    }
     avio_wl16(pb, (rate * 256) / rate_base); /* frame rate */
     swf->duration_pos = avio_tell(pb);
     avio_wl16(pb, (uint16_t)(DUMMY_DURATION * (int64_t)rate / rate_base)); /* frame count */