Add sanity check on ref frame index This is to fix the decoder crash on reading the is_inter_block flag for the segment active scenario, when the segment is intra coded. BUG=aomedia:1722 Change-Id: I25bb71df849e6fe8347a8cbc143566df4fbcfe83
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c index 3326be0..531926d 100644 --- a/av1/decoder/decodemv.c +++ b/av1/decoder/decodemv.c
@@ -1224,6 +1224,7 @@ int segment_id, aom_reader *r) { if (segfeature_active(&cm->seg, segment_id, SEG_LVL_REF_FRAME)) { const int frame = get_segdata(&cm->seg, segment_id, SEG_LVL_REF_FRAME); + if (frame < LAST_FRAME) return 0; RefBuffer *ref_buf = &cm->frame_refs[frame - LAST_FRAME]; return frame != INTRA_FRAME && av1_is_valid_scale(&ref_buf->sf); }