ext/vorbis/vorbisdec.c: Do not leak old taglist.
authorStefan Kost <ensonic@users.sourceforge.net>
Tue, 5 Aug 2008 15:38:06 +0000 (15:38 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Tue, 5 Aug 2008 15:38:06 +0000 (15:38 +0000)
Original commit message from CVS:
* ext/vorbis/vorbisdec.c:
Do not leak old taglist.

ChangeLog
ext/vorbis/vorbisdec.c

index 4eb712d..ed904dc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-08-05  Stefan Kost  <ensonic@users.sf.net>
+
+       * ext/vorbis/vorbisdec.c:
+         Do not leak old taglist.
+
 2008-08-04  Stefan Kost  <ensonic@users.sf.net>
 
        * tests/icles/test-scale.c:
index afd22d2..33304ce 100644 (file)
@@ -682,7 +682,7 @@ vorbis_handle_comment_packet (GstVorbisDec * vd, ogg_packet * packet)
 {
   guint bitrate = 0;
   gchar *encoder = NULL;
-  GstTagList *list;
+  GstTagList *list, *old_list;
   GstBuffer *buf;
 
   GST_DEBUG_OBJECT (vd, "parsing comment packet");
@@ -694,8 +694,11 @@ vorbis_handle_comment_packet (GstVorbisDec * vd, ogg_packet * packet)
       gst_tag_list_from_vorbiscomment_buffer (buf, (guint8 *) "\003vorbis", 7,
       &encoder);
 
+  old_list = vd->taglist;
   vd->taglist = gst_tag_list_merge (vd->taglist, list, GST_TAG_MERGE_REPLACE);
 
+  if (old_list)
+    gst_tag_list_free (old_list);
   gst_tag_list_free (list);
   gst_buffer_unref (buf);