The decoder assumes a single bitdepth for all the planes, the
specification does allow that.

Avoid the possible problems pointed in CVE-2013-2277

CC: [email protected]
---
 libavcodec/h264.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index a20a6f7..b11756e 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -2747,6 +2747,12 @@ static int h264_set_parameter_from_sps(H264Context *h)
     if (h->avctx->has_b_frames < 2)
         h->avctx->has_b_frames = !h->low_delay;
 
+    if (h->sps.bit_depth_luma != h->sps.bit_depth_chroma) {
+        av_log_missing_feature(h->avctx,
+            "Different bit depth between chroma and luma", 1);
+        return AVERROR(ENOSYS);
+    }
+
     if (h->avctx->bits_per_raw_sample != h->sps.bit_depth_luma ||
         h->cur_chroma_format_idc      != h->sps.chroma_format_idc) {
         if (h->avctx->codec &&
-- 
1.8.1.2

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to