On 20/07/16 17:41, Vittorio Giovara wrote:
> On Wed, Jul 13, 2016 at 9:46 PM, Luca Barbato <[email protected]> wrote:
>> 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.
>
> i'd like to add a log line in the explode case,
> + av_log(c->fc, AV_LOG_ERROR, "Invalid stsc index.");
>
> is it still ok?
>
I think so.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel