summaryrefslogtreecommitdiff
path: root/libavutil
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-03-05 16:34:07 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-03-08 01:01:49 +0100
commitdfffe037555f3564a22e5f456d93a858bf7e3588 (patch)
treeb7a9167b7028c62f41e100efad5670ac58187c22 /libavutil
parent6cf904ac3d6fdbc074c28d1359b4a6b60462d963 (diff)
avutil/dict: Deduplicate freeing dictionary
Reviewed-by: epirat07@gmail.com Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavutil')
-rw-r--r--libavutil/dict.c10
1 files 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(&copy_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;
}