This fixes a heap-buffer-overflow in ff_er_frame_end when decoding mss2
with coded_width/coded_height larger than width/height.
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
ff_vc1_decode_blocks(v);
- ff_er_frame_end(&s->er);
+ if (v->end_mb_x == s->mb_width && s->end_mb_y == s->mb_height) {
+ ff_er_frame_end(&s->er);
+ } else {
+ av_log(v->s.avctx, AV_LOG_WARNING,
+ "disabling error correction due to block count mismatch %dx%d != %dx%d\n",
+ v->end_mb_x, s->end_mb_y, s->mb_width, s->mb_height);
+ }
ff_mpv_frame_end(s);