avformat/mxfdec: check number of index table entires more strictly

Let's ignore the index table if the number of index entries does not match the
index duration (or the special AVID index entry counts).

Fixes: OOM
Fixes: 50551/clusterfuzz-testcase-minimized-ffmpeg_dem_MXF_fuzzer-6607795234930688

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
Marton Balint 2022-12-28 03:20:11 +01:00
parent 41dfa629d7
commit af606c232a
1 changed files with 8 additions and 0 deletions

View File

@ -1937,6 +1937,14 @@ static int mxf_compute_ptses_fake_index(MXFContext *mxf, MXFIndexTable *index_ta
return 0;
}
if (s->nb_index_entries != s->index_duration &&
s->nb_index_entries != s->index_duration + 1 && /* Avid index */
s->nb_index_entries != s->index_duration * 2 + 1) {
index_table->nb_ptses = 0;
av_log(mxf->fc, AV_LOG_ERROR, "ignoring IndexSID %d, duration does not match nb_index_entries\n", s->index_sid);
return 0;
}
index_table->nb_ptses += s->index_duration;
}