gstutils: check uri before using it in gst_pad_create_stream_id_internal

If an element implements wrongly the URI query and set the uri to NULL and if
the element calls gst_pad_create_stream_id at some point, it will lead to crash
as the uri is not supposed to be NULL in the gst_pad_create_stream_id_internal
function.

https://bugzilla.gnome.org/show_bug.cgi?id=744520
This commit is contained in:
Matthieu Bouron 2015-02-14 12:15:03 +01:00 committed by Tim-Philipp Müller
parent 025c8343f2
commit ee9ca5d48b

View file

@ -3675,15 +3675,17 @@ gst_pad_create_stream_id_internal (GstPad * pad, GstElement * parent,
* here is for source elements */
if (!upstream_stream_id) {
GstQuery *query;
gchar *uri = NULL;
/* Try to generate one from the URI query and
* if it fails take a random number instead */
query = gst_query_new_uri ();
if (gst_element_query (parent, query)) {
GChecksum *cs;
gchar *uri;
gst_query_parse_uri (query, &uri);
}
if (uri) {
GChecksum *cs;
/* And then generate an SHA256 sum of the URI */
cs = g_checksum_new (G_CHECKSUM_SHA256);