huffyuvdec: check width more completely, avoid out of array accesses
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 29 Nov 2012 14:56:05 +0000 (15:56 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 29 Nov 2012 14:56:36 +0000 (15:56 +0100)
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/huffyuv.c

index 6e88114..ca5bcd8 100644 (file)
@@ -514,7 +514,10 @@ static av_cold int decode_init(AVCodecContext *avctx)
         av_log(avctx, AV_LOG_ERROR, "width must be even for this colorspace\n");
         return AVERROR_INVALIDDATA;
     }
-
+    if (s->predictor == MEDIAN && avctx->pix_fmt == AV_PIX_FMT_YUV422P && avctx->width%4) {
+        av_log(avctx, AV_LOG_ERROR, "width must be a multiple of 4 this colorspace and predictor\n");
+        return AVERROR_INVALIDDATA;
+    }
     alloc_temp(s);
 
     return 0;