lagarith: always allocate for 4 planes. Fixes out of array accesses
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 12 Nov 2012 16:35:01 +0000 (17:35 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 12 Nov 2012 17:05:08 +0000 (18:05 +0100)
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/lagarith.c

index 0611abf..d0a5049 100644 (file)
@@ -569,7 +569,7 @@ static int lag_decode_frame(AVCodecContext *avctx,
 
         if (!l->rgb_planes) {
             l->rgb_stride = FFALIGN(avctx->width, 16);
-            l->rgb_planes = av_malloc(l->rgb_stride * avctx->height * planes + 16);
+            l->rgb_planes = av_malloc(l->rgb_stride * avctx->height * 4 + 16);
             if (!l->rgb_planes) {
                 av_log(avctx, AV_LOG_ERROR, "cannot allocate temporary buffer\n");
                 return AVERROR(ENOMEM);