From dfffe037555f3564a22e5f456d93a858bf7e3588 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Tue, 5 Mar 2024 16:34:07 +0100 Subject: [PATCH] avutil/dict: Deduplicate freeing dictionary Reviewed-by: epirat07@gmail.com Signed-off-by: Andreas Rheinhardt --- 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; }