debugutils: Handle caps field values being NULL
authorSebastian Rasmussen <sebras@hotmail.com>
Sun, 6 Apr 2014 09:23:34 +0000 (11:23 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Sun, 6 Apr 2014 13:24:21 +0000 (14:24 +0100)
GST_DEBUG_BIN_TO_DOT_FILE() would cause a segfault whenever it encountered an
element's caps that had a field value being NULL. Such fields are successfully
handled e.g. by GST_*_OBJECT(), and with this patch so does
GST_DEBUG_BIN_TO_DOT_FILE(). Even if string fields with a NULL value are
not supposed to be valid in caps, such caps can be created.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=727701

gst/gstdebugutils.c

index 0beaf99b73c499f9aa207ac87c40bc3a2a749c49..7b3ebf9c15fbb03a28f59ae2efb4e0dc9f0aa0f2 100644 (file)
@@ -273,6 +273,11 @@ string_append_field (GQuark field, const GValue * value, gpointer ptr)
   gchar *value_str = gst_value_serialize (value);
   gchar *esc_value_str;
 
+  if (value_str == NULL) {
+    g_string_append_printf (str, "  %18s: NULL\\l", g_quark_to_string (field));
+    return TRUE;
+  }
+
   /* some enums can become really long */
   if (strlen (value_str) > 25) {
     gint pos = 24;