[FFmpeg-cvslog] av_dict_set: fix potential memory leak with AV_DICT_DONT_OVERWRITE
Janne Grunau
git at videolan.org
Mon Jun 9 17:27:04 CEST 2014
ffmpeg | branch: master | Janne Grunau <janne-libav at jannau.net> | Sun Jun 8 17:53:31 2014 +0200| [1619274fb393f55a365cc10f88faa173c9a8e772] | committer: Janne Grunau
av_dict_set: fix potential memory leak with AV_DICT_DONT_OVERWRITE
av_dict_set leaks it key/value arguments if AV_DICT_DONT_OVERWRITE is
combined with AV_DICT_DONT_STRDUP_{KEY,VAL} and the key exists.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1619274fb393f55a365cc10f88faa173c9a8e772
---
libavutil/dict.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/libavutil/dict.c b/libavutil/dict.c
index 7b4dbf2..e4ea776 100644
--- a/libavutil/dict.c
+++ b/libavutil/dict.c
@@ -76,8 +76,11 @@ int av_dict_set(AVDictionary **pm, const char *key, const char *value,
m = *pm = av_mallocz(sizeof(*m));
if (tag) {
- if (flags & AV_DICT_DONT_OVERWRITE)
+ if (flags & AV_DICT_DONT_OVERWRITE) {
+ if (flags & AV_DICT_DONT_STRDUP_KEY) av_free(key);
+ if (flags & AV_DICT_DONT_STRDUP_VAL) av_free(value);
return 0;
+ }
if (flags & AV_DICT_APPEND)
oldval = tag->value;
else
More information about the ffmpeg-cvslog
mailing list