apedemux: Skip empty tags
authorEdward Hervey <bilboed@bilboed.com>
Fri, 24 Sep 2010 12:59:45 +0000 (14:59 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Fri, 24 Sep 2010 13:27:24 +0000 (15:27 +0200)
Avoid creating bogus string tags. Also added logging of the string
values of the tag name and value.

gst/apetag/gstapedemux.c

index 0860f25..accebee 100644 (file)
@@ -197,10 +197,16 @@ ape_demux_parse_tags (const guint8 * data, gint size)
     if (size - n < len)
       break;
 
+    /* If the tag is empty, skip to the next one */
+    if (len == 0)
+      goto next_tag;
+
     /* read */
     tag = g_strndup ((gchar *) data + 8, n - 9);
     val = g_strndup ((gchar *) data + n, len);
 
+    GST_LOG ("tag [%s], val[%s]", tag, val);
+
     /* special-case 'media' tag, could be e.g. "CD 1/2" */
     if (g_ascii_strcasecmp (tag, "media") == 0) {
       gchar *sp, *sp2;
@@ -314,6 +320,7 @@ ape_demux_parse_tags (const guint8 * data, gint size)
     g_free (val);
 
     /* move data pointer */
+  next_tag:
     size -= len + n;
     data += len + n;
   }