From 031d52672b67a468e75524cbbe07ca6cd91f9224 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" Date: Wed, 1 Dec 2021 15:49:22 +0100 Subject: [PATCH] rtmp2/client: Make sure 'salt' is not NULL Part-of: --- .../gst-plugins-bad/gst/rtmp2/rtmp/rtmpclient.c | 27 ++++++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/subprojects/gst-plugins-bad/gst/rtmp2/rtmp/rtmpclient.c b/subprojects/gst-plugins-bad/gst/rtmp2/rtmp/rtmpclient.c index cbbf627..0e57cdd 100644 --- a/subprojects/gst-plugins-bad/gst/rtmp2/rtmp/rtmpclient.c +++ b/subprojects/gst-plugins-bad/gst/rtmp2/rtmp/rtmpclient.c @@ -847,15 +847,32 @@ send_connect_done (const gchar * command_name, GPtrArray * args, } } - g_warn_if_fail (!data->auth_query); - data->auth_query = do_adobe_auth (data->location.username, - data->location.password, gst_uri_get_query_value (query, "salt"), - gst_uri_get_query_value (query, "opaque"), - gst_uri_get_query_value (query, "challenge")); + { + const gchar *salt, *opaque, *challenge; + + salt = gst_uri_get_query_value (query, "salt"); + if (!salt) { + g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED, + "salt missing from auth request: %s", desc); + g_object_unref (task); + gst_uri_unref (query); + return; + } + + opaque = gst_uri_get_query_value (query, "opaque"); + challenge = gst_uri_get_query_value (query, "challenge"); + + g_warn_if_fail (!data->auth_query); + data->auth_query = do_adobe_auth (data->location.username, + data->location.password, salt, opaque, challenge); + } gst_uri_unref (query); if (!data->auth_query) { + /* do_adobe_auth should not fail; send_connect tests if username + * and password are provided */ + g_warn_if_reached (); g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_FAILED, "couldn't generate adobe style authentication query"); g_object_unref (task); -- 2.7.4