Avoid creating bogus string tags. Also added logging of the string
values of the tag name and value.
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;
g_free (val);
/* move data pointer */
+ next_tag:
size -= len + n;
data += len + n;
}