On 9/4/2019 1:21 AM, Carl Eugen Hoyos wrote:
> 
> 
> Von meinem iPhone gesendet
> 
>> Am 04.09.2019 um 01:03 schrieb James Almer <jamr...@gmail.com>:
>>
>> Speeds up the process considerably.
>>
>> Fixes ticket #8109.
>>
>> Suggested-by: nevcairiel
>> Suggested-by: cehoyos
>> Signed-off-by: James Almer <jamr...@gmail.com>
>> ---
>> libavformat/matroskadec.c | 12 ++++++++++--
>> 1 file changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
>> index 439ee462a5..0f227eb33d 100644
>> --- a/libavformat/matroskadec.c
>> +++ b/libavformat/matroskadec.c
>> @@ -110,6 +110,7 @@ typedef const struct EbmlSyntax {
>>
>> typedef struct EbmlList {
>>     int nb_elem;
>> +    unsigned int alloc_elem_size;
>>     void *elem;
>> } EbmlList;
>>
>> @@ -1236,8 +1237,14 @@ static int ebml_parse(MatroskaDemuxContext *matroska,
>>         data = (char *) data + syntax->data_offset;
>>         if (syntax->list_elem_size) {
>>             EbmlList *list = data;
>> -            void *newelem = av_realloc_array(list->elem, list->nb_elem + 1,
>> -                                                   syntax->list_elem_size);
>> +            void *newelem;
> 
>> +            if ((unsigned)list->nb_elem + 1 >= UINT_MAX / 
>> syntax->list_elem_size)
>> +                return AVERROR(ENOMEM);
> 
> I would have naively expected this to use INT_MAX.

The size parameter in av_fast_realloc() is unsigned int.
av_add_index_entry() does the exact same check.

> 
> And please reconsider backporting random fixes for issues that are not 
> regressions.

Despite not being a regression, the speed up from this fix on real world
files is considerable, so it's worth backporting to at least release/4.2.

> 
> Carl Eugen
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
> 

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

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to