Prevent overflow when reading firstpass stats buffer.
BUG=aomedia:3026
Change-Id: I65ee834fcf1eb0c0030405008d8f43022fa79d53
diff --git a/av1/encoder/pass2_strategy.c b/av1/encoder/pass2_strategy.c
index 2fe41df..e9f4531 100644
--- a/av1/encoder/pass2_strategy.c
+++ b/av1/encoder/pass2_strategy.c
@@ -1928,11 +1928,13 @@
double base_score = 0.0;
// Accumulate base_score in
for (int j = cur_start + 1; j < cur_start + min_shrink_int; j++) {
+ if (stats + j >= twopass->stats_buf_ctx->stats_in_end) break;
base_score = (base_score + 1.0) * stats[j].cor_coeff;
}
int met_blending = 0; // Whether we have met blending areas before
int last_blending = 0; // Whether the previous frame if blending
for (int j = cur_start + min_shrink_int; j <= cur_last; j++) {
+ if (stats + j >= twopass->stats_buf_ctx->stats_in_end) break;
base_score = (base_score + 1.0) * stats[j].cor_coeff;
int this_reg =
find_regions_index(regions, num_regions, j + offset);