aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2013-09-12 12:27:58 +0300
committerLuca Barbato <lu_zero@gentoo.org>2014-01-07 09:43:56 +0100
commit290783b84866b1d16588f04c9c06ece37e523a69 (patch)
treead361e9f13c92bfc7ddbebeec715b01619925286 /libavcodec
parent7f80928c0e7a74dff58d6c9b0172e34619844d01 (diff)
downloadffmpeg-290783b84866b1d16588f04c9c06ece37e523a69.tar.gz
vp3: Check the framerate for validity
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Martin Storsjö <martin@martin.st> (cherry picked from commit 6fc8226e29055858f28973bb3d27b63b3b65e616) Signed-off-by: Luca Barbato <lu_zero@gentoo.org> (cherry picked from commit b4c479a82adbb1301e3e549cd80cdd65208ddd05)
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/vp3.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index da70e66ab9..d8e16505a1 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -2155,6 +2155,10 @@ static int theora_decode_header(AVCodecContext *avctx, GetBitContext *gb)
fps.num = get_bits_long(gb, 32);
fps.den = get_bits_long(gb, 32);
if (fps.num && fps.den) {
+ if (fps.num < 0 || fps.den < 0) {
+ av_log(avctx, AV_LOG_ERROR, "Invalid framerate\n");
+ return AVERROR_INVALIDDATA;
+ }
av_reduce(&avctx->time_base.num, &avctx->time_base.den,
fps.den, fps.num, 1<<30);
}