Commit e22b12e3 authored by Yaowu Xu's avatar Yaowu Xu

Added clamp of qindex to valid range

The qindex for a segment was not clamped in ABSDATA mode, which may
cause invalid memory access if an ill-formed stream has a negative
value in ABSDATA mode. This commit added clamp to make sure qindex
for a segment always fall into valid range.

Change-Id: I0a74d00f4ef40aec7edaeca1d03c8645e23ab08c
parent 4b3e44f9
...@@ -134,9 +134,9 @@ int vp9_get_qindex(const struct segmentation *seg, int segment_id, ...@@ -134,9 +134,9 @@ int vp9_get_qindex(const struct segmentation *seg, int segment_id,
int base_qindex) { int base_qindex) {
if (vp9_segfeature_active(seg, segment_id, SEG_LVL_ALT_Q)) { if (vp9_segfeature_active(seg, segment_id, SEG_LVL_ALT_Q)) {
const int data = vp9_get_segdata(seg, segment_id, SEG_LVL_ALT_Q); const int data = vp9_get_segdata(seg, segment_id, SEG_LVL_ALT_Q);
return seg->abs_delta == SEGMENT_ABSDATA ? const int seg_qindex = seg->abs_delta == SEGMENT_ABSDATA ?
data : // Abs value data : base_qindex + data;
clamp(base_qindex + data, 0, MAXQ); // Delta value return clamp(seg_qindex, 0, MAXQ);
} else { } else {
return base_qindex; return base_qindex;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment