adaptivedemux2: fix critical when using an unsupported URI
authorGuillaume Desmottes <guillaume.desmottes@onestream.live>
Tue, 11 Apr 2023 15:54:23 +0000 (17:54 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 14 Apr 2023 05:17:16 +0000 (05:17 +0000)
adaptivedemux2 only supports http(s), trying to use it with, say,
file:// was raising a CRITICAL in libsoup.

Fix #2476

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4421>

subprojects/gst-plugins-good/ext/adaptivedemux2/gstadaptivedemux.c

index 817348d..8e7c080 100644 (file)
@@ -953,6 +953,15 @@ handle_incoming_manifest (GstAdaptiveDemux * demux)
 
     GST_DEBUG_OBJECT (demux, "Fetched manifest at URI: %s (base: %s)",
         demux->manifest_uri, GST_STR_NULL (demux->manifest_base_uri));
+
+    if (!g_str_has_prefix (demux->manifest_uri, "http://")
+        && !g_str_has_prefix (demux->manifest_uri, "https://")) {
+      GST_ELEMENT_ERROR (demux, STREAM, DEMUX,
+          (_("Invalid manifest URI")),
+          ("Manifest URI needs to use either http:// or https://"));
+      ret = FALSE;
+      goto unlock_out;
+    }
   } else {
     GST_WARNING_OBJECT (demux, "Upstream URI query failed.");
   }