avcodec/mpegvideo: check that linesize is not too small
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 13 Jun 2014 15:12:00 +0000 (17:12 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 13 Jun 2014 16:40:21 +0000 (18:40 +0200)
Note linesize is rounded up to at least a multiple of 8

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/mpegvideo.c

index 1cef34a..97f22d2 100644 (file)
@@ -434,6 +434,11 @@ static int frame_size_alloc(MpegEncContext *s, int linesize)
 {
     int alloc_size = FFALIGN(FFABS(linesize) + 64, 32);
 
+    if (linesize < 24) {
+        av_log(s->avctx, AV_LOG_ERROR, "Image too small, temporary buffers cannot function\n");
+        return AVERROR_PATCHWELCOME;
+    }
+
     // edge emu needs blocksize + filter length - 1
     // (= 17x17 for  halfpel / 21x21 for  h264)
     // VC1 computes luma and chroma simultaneously and needs 19X19 + 9x9