On 02.04.2015 01:09, Michael Niedermayer wrote:
On Thu, Apr 02, 2015 at 12:37:34AM +0200, Lukasz Marek wrote:
On 01.04.2015 04:33, Michael Niedermayer wrote:
On Wed, Apr 01, 2015 at 03:25:23AM +0200, Lukasz Marek wrote:
Fixes following scenario:

av_dict_set(&d, "key", "old", 0);
AVDictionaryEentry *e = av_dict_get(d, "key", NULL, 0);
av_dict_set(&d, e->key, "new", 0);

Signed-off-by: Lukasz Marek <lukasz.m.lu...@gmail.com>
---
  libavutil/dict.c | 18 ++++++++++++++++--
  1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/libavutil/dict.c b/libavutil/dict.c
index 0d54c79..3163894 100644
--- a/libavutil/dict.c
+++ b/libavutil/dict.c
@@ -72,6 +72,7 @@ int av_dict_set(AVDictionary **pm, const char *key, const 
char *value,
      AVDictionary *m = *pm;
      AVDictionaryEntry *tag = av_dict_get(m, key, NULL, flags);
      char *oldval = NULL;
+    int the_same_key = 0;


does it work to av_strdup() both key and value if they need to be
strduped but at the top of the function and simplify the rest
accordingly ?


something like attached?

yes, LGTM if tested with valgrind or similar

Yes, I've tested with valgrind. Pushed.

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to