[libav-stable] hevc: Reject impossible slice segment

Luca Barbato git at libav.org
Sat Feb 1 23:57:57 CET 2014


Module: libav
Branch: master
Commit: 816e5b997028c8215c804b1e58b2388592ed612b

Author:    Luca Barbato <lu_zero at gentoo.org>
Committer: Luca Barbato <lu_zero at gentoo.org>
Date:      Sat Jan 11 11:32:07 2014 +0100

hevc: Reject impossible slice segment

A dependent slice cannot have address 0.
Prevent an out of array bound load in ff_hevc_cabac_init().

Sample-Id: 00001406-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable at libav.org

---

 libavcodec/hevc.c |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c
index 859b2ab..bc89b17 100644
--- a/libavcodec/hevc.c
+++ b/libavcodec/hevc.c
@@ -779,6 +779,11 @@ static int hls_slice_header(HEVCContext *s)
 
     sh->slice_ctb_addr_rs = sh->slice_segment_addr;
 
+    if (!s->sh.slice_ctb_addr_rs && s->sh.dependent_slice_segment_flag) {
+        av_log(s->avctx, AV_LOG_ERROR, "Impossible slice segment.\n");
+        return AVERROR_INVALIDDATA;
+    }
+
     s->HEVClc.first_qp_group = !s->sh.dependent_slice_segment_flag;
 
     if (!s->pps->cu_qp_delta_enabled_flag)



More information about the libav-stable mailing list