Avoid out-of-bounds issue When accessing to reference vector list with NONE_FRAME BUG=aomedia:412 Change-Id: I82a23591d6d9a179eb6f3b1e40f8d1f4018a53d8
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c index a376948..5395a3c 100644 --- a/av1/decoder/decodemv.c +++ b/av1/decoder/decodemv.c
@@ -1696,15 +1696,14 @@ zeromv[0].as_int = zeromv[1].as_int = 0; #endif for (ref = 0; ref < 2; ++ref) { + if (rf[ref] == NONE_FRAME) continue; lower_mv_precision(&ref_mvs[rf[ref]][0].as_mv, allow_hp); lower_mv_precision(&ref_mvs[rf[ref]][1].as_mv, allow_hp); - } - if (ref_mvs[rf[0]][0].as_int != zeromv[0].as_int || - ref_mvs[rf[0]][1].as_int != zeromv[0].as_int || - ref_mvs[rf[1]][0].as_int != zeromv[1].as_int || - ref_mvs[rf[1]][1].as_int != zeromv[1].as_int) - inter_mode_ctx[ref_frame] &= ~(1 << ALL_ZERO_FLAG_OFFSET); + if (ref_mvs[rf[ref]][0].as_int != zeromv[0].as_int || + ref_mvs[rf[ref]][1].as_int != zeromv[1].as_int) + inter_mode_ctx[ref_frame] &= ~(1 << ALL_ZERO_FLAG_OFFSET); + } } }