mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
mov: Rework the check for invalid indexes in stsc
There are samples with invalid stsc that may work fine as is and do not need extradata change. So ignore any out of range index, and error out only when explode is set. Found-by: Matthieu Bouron <matthieu.bouron@stupeflix.com> Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
This commit is contained in:
parent
90bc423212
commit
ed9b2a5178
@ -1949,8 +1949,13 @@ static int mov_read_stsc(MOVContext *c, AVIOContext *pb, MOVAtom atom)
|
|||||||
sc->stsc_data[i].first = avio_rb32(pb);
|
sc->stsc_data[i].first = avio_rb32(pb);
|
||||||
sc->stsc_data[i].count = avio_rb32(pb);
|
sc->stsc_data[i].count = avio_rb32(pb);
|
||||||
sc->stsc_data[i].id = avio_rb32(pb);
|
sc->stsc_data[i].id = avio_rb32(pb);
|
||||||
if (sc->stsc_data[i].id > sc->stsd_count)
|
if (sc->stsc_data[i].id < 0 || sc->stsc_data[i].id > sc->stsd_count) {
|
||||||
return AVERROR_INVALIDDATA;
|
sc->stsc_data[i].id = 0;
|
||||||
|
if (c->fc->error_recognition & AV_EF_EXPLODE) {
|
||||||
|
av_log(c->fc, AV_LOG_ERROR, "Invalid stsc index.\n");
|
||||||
|
return AVERROR_INVALIDDATA;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sc->stsc_count = i;
|
sc->stsc_count = i;
|
||||||
|
Loading…
Reference in New Issue
Block a user