From ce18a344f456707e51c30f1ecba3adca341f0ba9 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Sat, 29 Aug 2020 02:42:12 +0530 Subject: [PATCH] rtmp2: Need to unescape the userinfo before setting This regressed in 827afa206d8c9675f2a7af402396552c2ed1df09. The same fix was also committed to the webrtc element, but rtmp2 was missed. Part-of: --- gst/rtmp2/gstrtmp2locationhandler.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gst/rtmp2/gstrtmp2locationhandler.c b/gst/rtmp2/gstrtmp2locationhandler.c index d8e4367caa..2e421c8e97 100644 --- a/gst/rtmp2/gstrtmp2locationhandler.c +++ b/gst/rtmp2/gstrtmp2locationhandler.c @@ -212,6 +212,7 @@ uri_handler_set_uri (GstURIHandler * handler, const gchar * string, userinfo = gst_uri_get_userinfo (uri); if (userinfo) { + gchar *user, *pass; gchar **split = g_strsplit (userinfo, ":", 2); if (!split || !split[0] || !split[1]) { @@ -226,8 +227,13 @@ uri_handler_set_uri (GstURIHandler * handler, const gchar * string, "assume that the first ':' delineates user:pass. You should escape " "the user and pass before adding to the URI.", userinfo); - g_object_set (self, "username", split[0], "password", split[1], NULL); + user = g_uri_unescape_string (split[0], NULL); + pass = g_uri_unescape_string (split[1], NULL); g_strfreev (split); + + g_object_set (self, "username", user, "password", pass, NULL); + g_free (user); + g_free (pass); } ret = TRUE;