[evolution-data-server/wip/mcrha/soup3] e-soup-session: Remove User part of the URI when provided without password
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server/wip/mcrha/soup3] e-soup-session: Remove User part of the URI when provided without password
- Date: Fri, 22 Apr 2022 07:31:39 +0000 (UTC)
commit 778d9741dd744324f5ca962e320a631364e9104d
Author: Milan Crha <mcrha redhat com>
Date: Fri Apr 22 09:30:38 2022 +0200
e-soup-session: Remove User part of the URI when provided without password
src/libedataserver/e-soup-session.c | 27 +++++++++++++++++++++++----
1 file changed, 23 insertions(+), 4 deletions(-)
---
diff --git a/src/libedataserver/e-soup-session.c b/src/libedataserver/e-soup-session.c
index cb774970c..d27640905 100644
--- a/src/libedataserver/e-soup-session.c
+++ b/src/libedataserver/e-soup-session.c
@@ -829,14 +829,17 @@ e_soup_session_new_message (ESoupSession *session,
GError **error)
{
SoupMessage *message;
+ GUri *uri;
g_return_val_if_fail (E_IS_SOUP_SESSION (session), NULL);
- message = soup_message_new (method, uri_string);
- if (!message)
+ uri = g_uri_parse (uri_string, SOUP_HTTP_URI_FLAGS, error);
+ if (!uri)
return NULL;
- e_soup_session_preset_message (message);
+ message = e_soup_session_new_message_from_uri (session, method, uri, error);
+
+ g_uri_unref (uri);
return message;
}
@@ -868,7 +871,23 @@ e_soup_session_new_message_from_uri (ESoupSession *session,
g_return_val_if_fail (E_IS_SOUP_SESSION (session), NULL);
- message = soup_message_new_from_uri (method, uri);
+ if (g_uri_get_user (uri) && !g_uri_get_password (uri)) {
+ /* Do not allow setting user without password in the URI, because libsoup3 tries
+ to authenticate even without password, which can break the code. */
+ GUri *uri_copy;
+
+ uri_copy = soup_uri_copy (uri,
+ SOUP_URI_USER, NULL,
+ SOUP_URI_PASSWORD, NULL,
+ SOUP_URI_NONE);
+
+ message = soup_message_new_from_uri (method, uri_copy);
+
+ g_uri_unref (uri_copy);
+ } else {
+ message = soup_message_new_from_uri (method, uri);
+ }
+
if (!message)
return NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]