From 6f6cd7dbe539b64ea2ec25d91cad4880206a16af Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Thu, 29 Nov 2012 15:18:17 +0100 Subject: [PATCH] roqvideodec: check dimensions validity Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer (cherry picked from commit 3ae610451170cd5a28b33950006ff0bd23036845) Signed-off-by: Michael Niedermayer (cherry picked from commit fee26d352a52eb9f7fcd8d9167fb4a5ba015b612) CC: libav-stable@libav.org Signed-off-by: Reinhard Tartler (cherry picked from commit 488f87be873506abb01d67708a67c10a4dd29283) Signed-off-by: Reinhard Tartler (cherry picked from commit 52b18c1fde65efac7f6e6104b76d39bf8d0a34ee) Signed-off-by: Reinhard Tartler --- libavcodec/roqvideodec.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavcodec/roqvideodec.c b/libavcodec/roqvideodec.c index fe7863ff76..b18e8e094c 100644 --- a/libavcodec/roqvideodec.c +++ b/libavcodec/roqvideodec.c @@ -159,6 +159,13 @@ static av_cold int roq_decode_init(AVCodecContext *avctx) RoqContext *s = avctx->priv_data; s->avctx = avctx; + + if (avctx->width % 16 || avctx->height % 16) { + av_log(avctx, AV_LOG_ERROR, + "Dimensions must be a multiple of 16\n"); + return AVERROR_PATCHWELCOME; + } + s->width = avctx->width; s->height = avctx->height; s->last_frame = &s->frames[0];