On 14.12.2016 04:24, Michael Niedermayer wrote:
> On Wed, Dec 14, 2016 at 01:58:35AM +0100, Andreas Cadhalpun wrote:
>> Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com>
>> ---
>>  libavformat/mov.c | 15 ++++++++++++++-
>>  1 file changed, 14 insertions(+), 1 deletion(-)
>>
>> diff --git a/libavformat/mov.c b/libavformat/mov.c
>> index 6c8affc..fc0b25c 100644
>> --- a/libavformat/mov.c
>> +++ b/libavformat/mov.c
>> @@ -5887,8 +5887,15 @@ static int mov_read_header(AVFormatContext *s)
>>          for (i = 0; i < s->nb_streams; i++) {
>>              AVStream *st = s->streams[i];
>>              MOVStreamContext *sc = st->priv_data;
>> -            if (st->duration > 0)
>> +            if (st->duration > 0) {
>> +                if (sc->data_size > INT64_MAX / sc->time_scale / 8) {
>> +                    av_log(s, AV_LOG_ERROR, "Overflow during bit rate 
>> calculation %"PRId64" * 8 * %d\n",
>> +                           sc->data_size, sc->time_scale);
>> +                    mov_read_close(s);
>> +                    return AVERROR_INVALIDDATA;
>> +                }
>>                  st->codecpar->bit_rate = sc->data_size * 8 * sc->time_scale 
>> / st->duration;
>> +            }
>>          }
>>      }
>>  
>> @@ -5897,6 +5904,12 @@ static int mov_read_header(AVFormatContext *s)
>>              AVStream *st = s->streams[i];
>>              MOVStreamContext *sc = st->priv_data;
>>              if (sc->duration_for_fps > 0) {
>> +                if (sc->data_size > INT64_MAX / sc->time_scale / 8) {
>> +                    av_log(s, AV_LOG_ERROR, "Overflow during bit rate 
>> calculation %"PRId64" * 8 * %d\n",
>> +                           sc->data_size, sc->time_scale);
>> +                    mov_read_close(s);
>> +                    return AVERROR_INVALIDDATA;
>> +                }
>>                  st->codecpar->bit_rate = sc->data_size * 8 * sc->time_scale 
>> /
>>                      sc->duration_for_fps;
> 
> maybe this can be factored somehow

This is just twice, so factoring out isn't really worth it.
(The really repetitive stuff of validating codec parameters will
be factored out properly, but that's still work in progress.)

> but either way probably ok

Pushed.

Best regards,
Andreas

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to