diff --git a/libavformat/mov.c b/libavformat/mov.c index 7f88ec8220..d6bc377ace 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -10667,7 +10667,8 @@ static int mov_read_header(AVFormatContext *s) fix_timescale(mov, sc); /* Set the primary extradata based on the first Sample. */ - if (sc->stsc_count && sc->extradata_size && !sc->iamf) { + if (sc->stsc_count && sc->extradata_size && !sc->iamf && + sc->stsc_data[0].id > 0 && sc->stsc_data[0].id <= sc->stsd_count) { sc->last_stsd_index = sc->stsc_data[0].id - 1; av_freep(&st->codecpar->extradata); st->codecpar->extradata_size = sc->extradata_size[sc->last_stsd_index];