avformat/mov: reject negative ELST durations

Fixes: multiple integer overflows
Fixes: 401016767/clusterfuzz-testcase-minimized-ffmpeg_dem_MOV_fuzzer-6242067591790592

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 9fc2702f6f)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Michael Niedermayer 2025-05-10 23:39:53 +02:00
parent c52f0d2e0f
commit 329cd64a24
No known key found for this signature in database
GPG key ID: B18E8928B3948D64

View file

@ -5260,6 +5260,11 @@ static int mov_read_elst(MOVContext *c, AVIOContext *pb, MOVAtom atom)
c->fc->nb_streams-1, i, e->time);
return AVERROR_INVALIDDATA;
}
if (e->duration < 0) {
av_log(c->fc, AV_LOG_ERROR, "Track %d, edit %d: Invalid edit list duration=%"PRId64"\n",
c->fc->nb_streams-1, i, e->duration);
return AVERROR_INVALIDDATA;
}
}
sc->elst_count = i;