On 13/07/16 21:02, Vittorio Giovara wrote: > 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 <[email protected]> > > Signed-off-by: Vittorio Giovara <[email protected]> > --- > libavformat/mov.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/libavformat/mov.c b/libavformat/mov.c > index e0673e6..b8dd30a 100644 > --- a/libavformat/mov.c > +++ b/libavformat/mov.c > @@ -1949,8 +1949,11 @@ static int mov_read_stsc(MOVContext *c, AVIOContext > *pb, MOVAtom atom) > sc->stsc_data[i].first = avio_rb32(pb); > sc->stsc_data[i].count = avio_rb32(pb); > sc->stsc_data[i].id = avio_rb32(pb); > - if (sc->stsc_data[i].id > sc->stsd_count) > - return AVERROR_INVALIDDATA; > + if (sc->stsc_data[i].id < 0 || sc->stsc_data[i].id > sc->stsd_count) > { > + sc->stsc_data[i].id = 0; > + if (c->fc->error_recognition & AV_EF_EXPLODE) > + return AVERROR_INVALIDDATA; > + } > } > > sc->stsc_count = i; >
Probably Ok. _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
