Avoid out of boundary read in region array
Validate the region array index to avoid out of boundary read.
Change-Id: I2060af4212e44a6214b783ee37b4bae9928b6004
(cherry picked from commit 3dd15c7e41a16ff74216277697fb28fab312506e)
diff --git a/av1/encoder/pass2_strategy.c b/av1/encoder/pass2_strategy.c
index 482e260..5267f57 100644
--- a/av1/encoder/pass2_strategy.c
+++ b/av1/encoder/pass2_strategy.c
@@ -2082,11 +2082,11 @@
// reset pointers to the shrinked location
twopass->stats_in = start_pos + cur_last;
cur_start = cur_last;
- if (regions[find_regions_index(regions, num_regions,
- cur_start + 1 + offset)]
- .type == SCENECUT_REGION) {
- cur_start++;
- }
+ int cur_region_idx =
+ find_regions_index(regions, num_regions, cur_start + 1 + offset);
+ if (cur_region_idx >= 0)
+ if (regions[cur_region_idx].type == SCENECUT_REGION) cur_start++;
+
i = cur_last;
if (cut_here > 1 && cur_last == ori_last) break;