Fix valgrind invalid read on top MB rows with CODEC_FLAG_EMU_EDGE set.
authorRonald S. Bultje <rsbultje@gmail.com>
Thu, 30 Dec 2010 14:33:21 +0000 (14:33 +0000)
committerRonald S. Bultje <rsbultje@gmail.com>
Thu, 30 Dec 2010 14:33:21 +0000 (14:33 +0000)
Originally committed as revision 26168 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/vp8.c

index 50ecaf1889e0e4f3ee1e6727f849d4600591c3c8..80d30e8046cafd1bfa422107d216098171098c8a 100644 (file)
@@ -1104,7 +1104,8 @@ void intra_predict(VP8Context *s, uint8_t *dst[3], VP8Macroblock *mb,
 
         // if we're on the right edge of the frame, said edge is extended
         // from the top macroblock
 
         // if we're on the right edge of the frame, said edge is extended
         // from the top macroblock
-        if (mb_x == s->mb_width-1) {
+        if (!(!mb_y && avctx->flags & CODEC_FLAG_EMU_EDGE) &&
+            mb_x == s->mb_width-1) {
             tr = tr_right[-1]*0x01010101;
             tr_right = (uint8_t *)&tr;
         }
             tr = tr_right[-1]*0x01010101;
             tr_right = (uint8_t *)&tr;
         }