[FFmpeg-devel] [PATCH] avutil/dict: Deduplicate freeing dictionary
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Thu Mar 7 10:13:06 EET 2024
Andreas Rheinhardt:
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> ---
> libavutil/dict.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/libavutil/dict.c b/libavutil/dict.c
> index 7f23d5336a..6fb09399ba 100644
> --- a/libavutil/dict.c
> +++ b/libavutil/dict.c
> @@ -145,11 +145,8 @@ int av_dict_set(AVDictionary **pm, const char *key, const char *value,
> m->elems[m->count].value = copy_value;
> m->count++;
> } else {
> - if (!m->count) {
> - av_freep(&m->elems);
> - av_freep(pm);
> - }
> - av_freep(©_key);
> + err = 0;
> + goto end;
> }
>
> return 0;
> @@ -157,12 +154,13 @@ int av_dict_set(AVDictionary **pm, const char *key, const char *value,
> enomem:
> err = AVERROR(ENOMEM);
> err_out:
> + av_free(copy_value);
> +end:
> if (m && !m->count) {
> av_freep(&m->elems);
> av_freep(pm);
> }
> av_free(copy_key);
> - av_free(copy_value);
> return err;
> }
>
Will apply this patch tomorrow unless there are objections.
- Andreas
More information about the ffmpeg-devel
mailing list