[FFmpeg-devel] [PATCH 1/5] avformat/webmdashenc: Avoid allocation for parsing a number

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Sat May 23 07:52:49 EEST 2020


Andreas Rheinhardt:
> Andreas Rheinhardt:
>> In order to parse a number from a string, the WebM DASH manifest muxer
>> would duplicate (via heap-allocation) the part of the string that
>> contains the number, then read the number via atoi() and then free the
>> duplicate again. This has been replaced by simply using strtoll() (which
>> in contrast to atoi() has defined behaviour when the number is not
>> representable).
>>
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
>> ---
>>  libavformat/webmdashenc.c | 14 +-------------
>>  1 file changed, 1 insertion(+), 13 deletions(-)
>>
>> diff --git a/libavformat/webmdashenc.c b/libavformat/webmdashenc.c
>> index 465485c90c..05015a08c1 100644
>> --- a/libavformat/webmdashenc.c
>> +++ b/libavformat/webmdashenc.c
>> @@ -425,18 +425,6 @@ static int write_adaptation_set(AVFormatContext *s, int as_index)
>>      return 0;
>>  }
>>  
>> -static int to_integer(char *p, int len)
>> -{
>> -    int ret;
>> -    char *q = av_malloc(len);
>> -    if (!q)
>> -        return AVERROR(ENOMEM);
>> -    av_strlcpy(q, p, len);
>> -    ret = atoi(q);
>> -    av_free(q);
>> -    return ret;
>> -}
>> -
>>  static int parse_adaptation_sets(AVFormatContext *s)
>>  {
>>      WebMDashMuxContext *w = s->priv_data;
>> @@ -483,7 +471,7 @@ static int parse_adaptation_sets(AVFormatContext *s)
>>                  return ret;
>>              q = p;
>>              while (*q != '\0' && *q != ',' && *q != ' ') q++;
>> -            as->streams[as->nb_streams - 1] = to_integer(p, q - p + 1);
>> +            as->streams[as->nb_streams - 1] = strtoll(p, NULL, 10);
>>              if (as->streams[as->nb_streams - 1] < 0 ||
>>                  as->streams[as->nb_streams - 1] >= s->nb_streams) {
>>                  av_log(s, AV_LOG_ERROR, "Invalid value for 'streams' in adapation_sets.\n");
>>
> Will apply this patchset tomorrow unless there are objections.
> 
> - Andreas
> 
Applied.

- Andreas


More information about the ffmpeg-devel mailing list