h261: check the mtype index
authorLuca Barbato <lu_zero@gentoo.org>
Wed, 14 Aug 2013 14:57:21 +0000 (16:57 +0200)
committerLuca Barbato <lu_zero@gentoo.org>
Sat, 24 Aug 2013 14:50:12 +0000 (16:50 +0200)
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
(cherry picked from commit c59967fa7cc5bc2fa06b36c17d2c207240c06b3e)
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Conflicts:
libavcodec/h261dec.c

libavcodec/h261dec.c

index 55453c1..77c6cab 100644 (file)
@@ -286,6 +286,11 @@ static int h261_decode_mb(H261Context *h){
 
     // Read mtype
     h->mtype = get_vlc2(&s->gb, h261_mtype_vlc.table, H261_MTYPE_VLC_BITS, 2);
+    if (h->mtype < 0 || h->mtype >= FF_ARRAY_ELEMS(h261_mtype_map)) {
+        av_log(s->avctx, AV_LOG_ERROR, "Invalid mtype index %d\n",
+               h->mtype);
+        return SLICE_ERROR;
+    }
     h->mtype = h261_mtype_map[h->mtype];
 
     // Read mquant