h261: check mtype.
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 2 Mar 2012 14:58:14 +0000 (15:58 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 11 May 2012 20:39:31 +0000 (22:39 +0200)
Fixes out of array read

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit ec3cd74f2dab8e3e8234ccb994132b23d3098585)

libavcodec/h261dec.c

index 7054286..aa1be6f 100644 (file)
@@ -285,6 +285,10 @@ 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) {
+        av_log(s->avctx, AV_LOG_ERROR, "illegal mtype %d\n", h->mtype);
+        return SLICE_ERROR;
+    }
     h->mtype = h261_mtype_map[h->mtype];
 
     // Read mquant