Browse Source

prores: check slice mb_y against mb_height

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n0.9
Michael Niedermayer 14 years ago
parent
commit
397d194e50
1 changed files with 10 additions and 1 deletions
  1. +10
    -1
      libavcodec/proresdec_gpl.c

+ 10
- 1
libavcodec/proresdec_gpl.c View File

@@ -223,7 +223,10 @@ static int decode_picture_header(AVCodecContext *avctx, const uint8_t *buf, cons
} }


ctx->mb_width = (avctx->width + 15) >> 4; ctx->mb_width = (avctx->width + 15) >> 4;
ctx->mb_height = (avctx->height + 15) >> 4;
if (ctx->frame_type)
ctx->mb_height = (avctx->height + 31) >> 5;
else
ctx->mb_height = (avctx->height + 15) >> 4;


slice_count = AV_RB16(buf + 5); slice_count = AV_RB16(buf + 5);


@@ -282,6 +285,12 @@ static int decode_picture_header(AVCodecContext *avctx, const uint8_t *buf, cons
} }
} }


if (mb_x || mb_y != ctx->mb_height) {
av_log(avctx, AV_LOG_ERROR, "error wrong mb count y %d h %d\n",
mb_y, ctx->mb_height);
return -1;
}

return pic_data_size; return pic_data_size;
} }




Loading…
Cancel
Save