frei0r: Fix crashes if plugins don't provide correct property information
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 28 Sep 2010 14:14:14 +0000 (16:14 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 28 Sep 2010 14:16:31 +0000 (16:16 +0200)
The vertigo plugin for example claims to have 3 properties but
the 3rd property does nothing and has a NULL name.

Fixes bug #630783.

Thanks to Martti Kühne for debugging this.

gst/frei0r/gstfrei0r.c

index 2254dc2ecf514a44d2a01c497c0d54a11aba3285..6b8c0080a990ba781a19d2b8982f1c0e77bad6ee 100644 (file)
@@ -72,6 +72,12 @@ gst_frei0r_klass_install_properties (GObjectClass * gobject_class,
 
     ftable->get_param_info (param_info, i);
 
+    if (!param_info->name) {
+      GST_ERROR ("Property %d of %s without a valid name", i,
+          g_type_name (G_TYPE_FROM_CLASS (gobject_class)));
+      continue;
+    }
+
     prop_name = g_ascii_strdown (param_info->name, -1);
     g_strcanon (prop_name, G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "-+", '-');
     /* satisfy glib2 (argname[0] must be [A-Za-z]) */