diff options
author | Zhao, Gang <gang.zhao.42@gmail.com> | 2021-05-09 06:13:48 +0300 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2021-07-26 14:37:33 +0300 |
commit | ed92fb2430364bd7b9660cf83d32aae00a3ee899 (patch) | |
tree | e48265d3b4cf1a38a0a0cb3b232c0a83f574ff5d | |
parent | add1f17c57a68e02a34765a4dd2312fbba8af333 (diff) |
gsturi: Don't treat invalid format of uri as critical error
Normally uri is get from user input and invalid user input should not
be treated as critical error. Moved gst_uri_is_valid outside of
g_return_val_if_fail.
NULL uri is checked inside of gst_uri_is_valid and is correctly
treated as critical error, removed unneeded checks of NULL uri outside
of gst_uri_is_valid function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/816>
-rw-r--r-- | gst/gsturi.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/gst/gsturi.c b/gst/gsturi.c index 10214359b3..cd736fbcc4 100644 --- a/gst/gsturi.c +++ b/gst/gsturi.c @@ -405,8 +405,8 @@ gst_uri_get_protocol (const gchar * uri) { gchar *colon; - g_return_val_if_fail (uri != NULL, NULL); - g_return_val_if_fail (gst_uri_is_valid (uri), NULL); + if (!gst_uri_is_valid (uri)) + return NULL; colon = strstr (uri, ":"); @@ -427,9 +427,11 @@ gst_uri_has_protocol (const gchar * uri, const gchar * protocol) { gchar *colon; - g_return_val_if_fail (uri != NULL, FALSE); g_return_val_if_fail (protocol != NULL, FALSE); - g_return_val_if_fail (gst_uri_is_valid (uri), FALSE); + + if (!gst_uri_is_valid (uri)) { + return FALSE; + } colon = strstr (uri, ":"); @@ -460,8 +462,9 @@ gst_uri_get_location (const gchar * uri) const gchar *colon; gchar *unescaped = NULL; - g_return_val_if_fail (uri != NULL, NULL); - g_return_val_if_fail (gst_uri_is_valid (uri), NULL); + if (!gst_uri_is_valid (uri)) { + return NULL; + } colon = strstr (uri, "://"); if (!colon) @@ -632,9 +635,12 @@ gst_element_make_from_uri (const GstURIType type, const gchar * uri, g_return_val_if_fail (gst_is_initialized (), NULL); g_return_val_if_fail (GST_URI_TYPE_IS_VALID (type), NULL); - g_return_val_if_fail (gst_uri_is_valid (uri), NULL); g_return_val_if_fail (error == NULL || *error == NULL, NULL); + if (!gst_uri_is_valid (uri)) { + return NULL; + } + GST_DEBUG ("type:%d, uri:%s, elementname:%s", type, uri, elementname); protocol = gst_uri_get_protocol (uri); @@ -796,13 +802,16 @@ gst_uri_handler_set_uri (GstURIHandler * handler, const gchar * uri, gchar *protocol; g_return_val_if_fail (GST_IS_URI_HANDLER (handler), FALSE); - g_return_val_if_fail (gst_uri_is_valid (uri), FALSE); g_return_val_if_fail (error == NULL || *error == NULL, FALSE); iface = GST_URI_HANDLER_GET_INTERFACE (handler); g_return_val_if_fail (iface != NULL, FALSE); g_return_val_if_fail (iface->set_uri != NULL, FALSE); + if (!gst_uri_is_valid (uri)) { + return FALSE; + } + protocol = gst_uri_get_protocol (uri); if (iface->get_protocols) { |