[FFmpeg-cvslog] ffmdec: make sure the time base is valid
Andreas Cadhalpun
git at videolan.org
Sat Mar 14 14:41:06 CET 2015
ffmpeg | branch: release/2.2 | Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com> | Sun Mar 8 23:12:59 2015 +0100| [7a3ff7fb814bfecd4395427b52391c7ccb9561e0] | committer: Michael Niedermayer
ffmdec: make sure the time base is valid
A negative time base can trigger assertions.
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit 4c91d81be23ffacfa3897b2bcfa77445bb0c2f89)
Conflicts:
libavformat/ffmdec.c
(cherry picked from commit 9678ceb6976ca8194848b24535785a298521211f)
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7a3ff7fb814bfecd4395427b52391c7ccb9561e0
---
libavformat/ffmdec.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/libavformat/ffmdec.c b/libavformat/ffmdec.c
index 2f02c7a..91882b2 100644
--- a/libavformat/ffmdec.c
+++ b/libavformat/ffmdec.c
@@ -296,6 +296,11 @@ static int ffm2_read_header(AVFormatContext *s)
case MKBETAG('S', 'T', 'V', 'I'):
codec->time_base.num = avio_rb32(pb);
codec->time_base.den = avio_rb32(pb);
+ if (codec->time_base.num <= 0 || codec->time_base.den <= 0) {
+ av_log(s, AV_LOG_ERROR, "Invalid time base %d/%d\n",
+ codec->time_base.num, codec->time_base.den);
+ goto fail;
+ }
codec->width = avio_rb16(pb);
codec->height = avio_rb16(pb);
codec->gop_size = avio_rb16(pb);
@@ -420,6 +425,11 @@ static int ffm_read_header(AVFormatContext *s)
case AVMEDIA_TYPE_VIDEO:
codec->time_base.num = avio_rb32(pb);
codec->time_base.den = avio_rb32(pb);
+ if (codec->time_base.num <= 0 || codec->time_base.den <= 0) {
+ av_log(s, AV_LOG_ERROR, "Invalid time base %d/%d\n",
+ codec->time_base.num, codec->time_base.den);
+ goto fail;
+ }
codec->width = avio_rb16(pb);
codec->height = avio_rb16(pb);
codec->gop_size = avio_rb16(pb);
More information about the ffmpeg-cvslog
mailing list