avutil/dict: Use av_freep() to avoid leaving stale pointers in memory
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 27 Dec 2014 14:48:32 +0000 (15:48 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 27 Dec 2014 14:48:32 +0000 (15:48 +0100)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavutil/dict.c

index a362de0..0d54c79 100644 (file)
@@ -120,7 +120,7 @@ int av_dict_set(AVDictionary **pm, const char *key, const char *value,
         m->count++;
     }
     if (!m->count) {
-        av_free(m->elems);
+        av_freep(&m->elems);
         av_freep(pm);
     }
 
@@ -128,7 +128,7 @@ int av_dict_set(AVDictionary **pm, const char *key, const char *value,
 
 err_out:
     if (m && !m->count) {
-        av_free(m->elems);
+        av_freep(&m->elems);
         av_freep(pm);
     }
     if (flags & AV_DICT_DONT_STRDUP_KEY) av_free((void*)key);
@@ -197,10 +197,10 @@ void av_dict_free(AVDictionary **pm)
 
     if (m) {
         while (m->count--) {
-            av_free(m->elems[m->count].key);
-            av_free(m->elems[m->count].value);
+            av_freep(&m->elems[m->count].key);
+            av_freep(&m->elems[m->count].value);
         }
-        av_free(m->elems);
+        av_freep(&m->elems);
     }
     av_freep(pm);
 }