taglist: avoid triggering an assertion
authorWim Taymans <wim.taymans@collabora.co.uk>
Fri, 12 Apr 2013 15:13:15 +0000 (16:13 +0100)
committerTim-Philipp Müller <tim@centricular.net>
Sat, 13 Apr 2013 11:08:55 +0000 (12:08 +0100)
When deserialization of the structure fails, return a NULL taglist instead of
asserting.

gst/gsttaglist.c

index d978b2d440d4f1fa670f7eeb8c1931c3bc0ea743..859767098185af43e9ccb1fa4a1402555f7cabf4 100644 (file)
@@ -853,11 +853,17 @@ GstTagList *
 gst_tag_list_new_from_string (const gchar * str)
 {
   GstTagList *tag_list;
+  GstStructure *s;
 
   g_return_val_if_fail (str != NULL, NULL);
   g_return_val_if_fail (g_str_has_prefix (str, "taglist"), NULL);
 
-  tag_list = gst_tag_list_new_internal (gst_structure_from_string (str, NULL));
+  s = gst_structure_from_string (str, NULL);
+  if (s == NULL)
+    return NULL;
+
+  tag_list = gst_tag_list_new_internal (s);
+
   return tag_list;
 }