[evolution] Relative URI can crash Evolution in http_request_send_async()



commit e9038ba92372c11515ba5663c2fd41af7b8494a9
Author: Milan Crha <mcrha redhat com>
Date:   Tue Nov 13 13:36:08 2012 +0100

    Relative URI can crash Evolution in http_request_send_async()

 mail/e-http-request.c |    8 ++++++--
 mail/e-mail-display.c |    3 ++-
 2 files changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/mail/e-http-request.c b/mail/e-http-request.c
index 84b243b..4b77950 100644
--- a/mail/e-http-request.c
+++ b/mail/e-http-request.c
@@ -168,7 +168,9 @@ handle_http_request (GSimpleAsyncResult *res,
 
 	/* Remove the __evo-mail query */
 	soup_uri = soup_request_get_uri (SOUP_REQUEST (request));
-	query = soup_form_decode (soup_uri->query);
+	g_return_if_fail (soup_uri_get_query (soup_uri) != NULL);
+
+	query = soup_form_decode (soup_uri_get_query (soup_uri));
 	mail_uri = g_hash_table_lookup (query, "__evo-mail");
 	if (mail_uri)
 		mail_uri = g_strdup (mail_uri);
@@ -432,7 +434,9 @@ http_request_send_async (SoupRequest *request,
 
 	ehr = E_HTTP_REQUEST (request);
 	uri = soup_request_get_uri (request);
-	query = soup_form_decode (uri->query);
+	g_return_if_fail (soup_uri_get_query (uri) != NULL);
+
+	query = soup_form_decode (soup_uri_get_query (uri));
 
 	d ({
 		gchar *uri_str = soup_uri_to_string (uri, FALSE);
diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c
index 5e33ccd..a544518 100644
--- a/mail/e-mail-display.c
+++ b/mail/e-mail-display.c
@@ -355,7 +355,8 @@ mail_display_resource_requested (WebKitWebView *web_view,
 
 	/* Redirect http(s) request to evo-http(s) protocol.
 	 * See EMailRequest for further details about this. */
-	} else if (g_str_has_prefix (uri, "http:") || g_str_has_prefix (uri, "https")) {
+	} else if (g_str_has_prefix (uri, "http:") || g_str_has_prefix (uri, "https:") ||
+	    g_str_has_prefix (uri, "evo-http:") || g_str_has_prefix (uri, "evo-https:")) {
 		gchar *new_uri, *mail_uri, *enc;
 		SoupURI *soup_uri;
 		GHashTable *query;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]