Merge commit '95db1624ef98ccc4ba7ff70d50c4b4d0f8ffed54' into release/1.1
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 12 May 2013 11:44:08 +0000 (13:44 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 12 May 2013 11:44:08 +0000 (13:44 +0200)
* commit '95db1624ef98ccc4ba7ff70d50c4b4d0f8ffed54':
  indeo3: switch parsing the header to bytestream2
  indeo3: check motion vectors.
  rv10: check that extradata is large enough
  indeo3: fix data size check

Conflicts:
libavcodec/indeo3.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/indeo3.c
libavcodec/rv10.c

@@@ -234,11 -231,18 +234,21 @@@ static int copy_cell(Indeo3DecodeContex
      /* setup output and reference pointers */
      offset_dst  = (cell->ypos << 2) * plane->pitch + (cell->xpos << 2);
      dst         = plane->pixels[ctx->buf_sel] + offset_dst;
 +    if(cell->mv_ptr){
      mv_y        = cell->mv_ptr[0];
      mv_x        = cell->mv_ptr[1];
 +    }else
 +        mv_x= mv_y= 0;
+     /* -1 because there is an extra line on top for prediction */
+     if ((cell->ypos << 2) + mv_y < -1 || (cell->xpos << 2) + mv_x < 0 ||
+         ((cell->ypos + cell->height) << 2) + mv_y >= plane->height    ||
+         ((cell->xpos + cell->width)  << 2) + mv_x >= plane->width) {
+         av_log(ctx->avctx, AV_LOG_ERROR,
+                "Motion vectors point out of the frame.\n");
+         return AVERROR_INVALIDDATA;
+     }
      offset      = offset_dst + mv_y * plane->pitch + mv_x;
      src         = plane->pixels[ctx->buf_sel ^ 1] + offset;
  
Simple merge