From: Kostya Shishkov Date: Mon, 12 Sep 2011 09:39:53 +0000 (+0200) Subject: rv34: check that subsequent slices have the same type as first one. X-Git-Tag: android-x86-4.4-r1~8529^2~5523 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=23a1f0c59241465ba30103388029a7afc0ead909;p=android-x86%2Fexternal-ffmpeg.git rv34: check that subsequent slices have the same type as first one. This prevents some crashes when corrupted bitstream reports e.g. P-type slice in I-frame. Official RealVideo decoder demands all slices to be of the same type too. Signed-off-by: Anton Khirnov --- diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c index 253c3952d2..80c88fb102 100644 --- a/libavcodec/rv34.c +++ b/libavcodec/rv34.c @@ -1336,6 +1336,13 @@ static int rv34_decode_slice(RV34DecContext *r, int end, const uint8_t* buf, int } } s->mb_x = s->mb_y = 0; + } else { + int slice_type = r->si.type ? r->si.type : AV_PICTURE_TYPE_I; + + if (slice_type != s->pict_type) { + av_log(s->avctx, AV_LOG_ERROR, "Slice type mismatch\n"); + return AVERROR_INVALIDDATA; + } } r->si.end = end;