h264: check for invalid bit depth value.
authorLaurent Aimar <fenrir@videolan.org>
Sun, 2 Oct 2011 16:29:31 +0000 (18:29 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 2 Oct 2011 19:30:14 +0000 (21:30 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit c2b7f7748be447e1446f63b13da472ba7e00f329)

libavcodec/h264_ps.c

index 4342c4b..423f54b 100644 (file)
@@ -346,6 +346,11 @@ int ff_h264_decode_seq_parameter_set(H264Context *h){
             sps->residual_color_transform_flag = get_bits1(&s->gb);
         sps->bit_depth_luma   = get_ue_golomb(&s->gb) + 8;
         sps->bit_depth_chroma = get_ue_golomb(&s->gb) + 8;
+        if (sps->bit_depth_luma > 12U || sps->bit_depth_chroma > 12U) {
+            av_log(h->s.avctx, AV_LOG_ERROR, "illegal bit depth value (%d, %d)\n",
+                   sps->bit_depth_luma, sps->bit_depth_chroma);
+            goto fail;
+        }
         sps->transform_bypass = get_bits1(&s->gb);
         decode_scaling_matrices(h, sps, NULL, 1, sps->scaling_matrix4, sps->scaling_matrix8);
     }else{