[FFmpeg-devel] [PATCH V1 02/12] lavc/libkvazaar: fix memory leak after av_dict_parse_string fail

Marton Balint cus at passwd.hu
Wed Jan 1 18:46:18 EET 2020



On Wed, 1 Jan 2020, James Almer wrote:

> On 1/1/2020 2:20 AM, Jun Zhao wrote:
>> From: Jun Zhao <barryjzhao at tencent.com>
>> 
>> In case of failure, all the successfully set entries are stored in
>> *pm. We need to manually free the created dictionary to avoid
>> memory leak.
>> 
>> Signed-off-by: Jun Zhao <barryjzhao at tencent.com>
>> ---
>>  libavcodec/libkvazaar.c |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>> 
>> diff --git a/libavcodec/libkvazaar.c b/libavcodec/libkvazaar.c
>> index a89ca7f..02bcae3 100644
>> --- a/libavcodec/libkvazaar.c
>> +++ b/libavcodec/libkvazaar.c
>> @@ -110,8 +110,8 @@ static av_cold int libkvazaar_init(AVCodecContext *avctx)
>>                             entry->key, entry->value);
>>                  }
>>              }
>> -            av_dict_free(&dict);
>>          }
>> +        av_dict_free(&dict);
>>      }
>>
>>      ctx->encoder = enc = api->encoder_open(cfg);
>
> There's a patchset by Marton Balint changing this code in all the same
> modules as in this patchset, by replacing it all with a simple
> av_dict_copy() call.
>
> http://lists.ffmpeg.org/pipermail/ffmpeg-devel/2019-December/254805.html
> and every following patch.

Yeah, although not every patch is covered, because libkvazaar for example 
uses comma(,) separator instead of colon(:) spearator, so it could not be 
converted to a simple AV_OPT_TYPE_DICT.

Probably I should apply my pending patches and then you should rebase this 
series and keep the ones which are still relevant.

Thanks,
Marton


More information about the ffmpeg-devel mailing list