gst/gsturi.c: Don't assert/crash here if a uri handler doesn't return any supported...
authorTim-Philipp Müller <tim@centricular.net>
Mon, 25 Sep 2006 11:16:37 +0000 (11:16 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Mon, 25 Sep 2006 11:16:37 +0000 (11:16 +0000)
Original commit message from CVS:
* gst/gsturi.c: (search_by_entry):
Don't assert/crash here if a uri handler doesn't return any
supported protocols. The list of protocols could be generated
dynamically at runtime or at plugin registration, and an error
in the underlying library shouldn't be fatal (#353301).

ChangeLog
gst/gsturi.c

index 069d754..11760c1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2006-09-25  Tim-Philipp Müller  <tim at centricular dot net>
 
+       * gst/gsturi.c: (search_by_entry):
+         Don't assert/crash here if a uri handler doesn't return any
+         supported protocols. The list of protocols could be generated
+         dynamically at runtime or at plugin registration, and an error
+         in the underlying library shouldn't be fatal (#353301).
+
+2006-09-25  Tim-Philipp Müller  <tim at centricular dot net>
+
        * gst/gstinfo.c:
          Fix warning if HAVE_PRINTF_EXTENSION is undefined
          (spotted by Peter Kjellerstedt).
index c43dace..ae2ca7a 100644 (file)
@@ -475,8 +475,13 @@ search_by_entry (GstPluginFeature * feature, gpointer search_entry)
     return FALSE;
 
   protocols = gst_element_factory_get_uri_protocols (factory);
-  /* must be set when uri type is valid */
-  g_assert (protocols);
+
+  if (protocols == NULL) {
+    g_warning ("Factory '%s' implements GstUriHandler interface but returned "
+        "no supported protocols!", gst_plugin_feature_get_name (feature));
+    return FALSE;
+  }
+
   while (*protocols != NULL) {
     if (strcmp (*protocols, entry->protocol) == 0)
       return TRUE;