From a593d514c872dace24e899c1ccb25955f985cbc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Vr=C3=A1til?= Date: Fri, 27 Apr 2012 17:53:42 +0200 Subject: Bug #674466 - Mail's preview panel can show listing of local filesystem root --- mail/e-mail-display.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'mail') diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c index 0b1c343646..1ffeb82c1b 100644 --- a/mail/e-mail-display.c +++ b/mail/e-mail-display.c @@ -384,6 +384,19 @@ mail_display_link_clicked (WebKitWebView *web_view, EMailDisplay *display; const gchar *uri = webkit_network_request_get_uri (request); + if (g_str_has_prefix (uri, "file://")) { + gchar *filename; + filename = g_filename_from_uri (uri, NULL, NULL); + + if (g_file_test (filename, G_FILE_TEST_IS_DIR)) { + webkit_web_policy_decision_ignore (policy_decision); + webkit_network_request_set_uri (request, "about:blank"); + return TRUE; + } + + g_free (filename); + } + display = E_MAIL_DISPLAY (web_view); if (display->priv->formatter == NULL) return FALSE; @@ -448,7 +461,7 @@ mail_display_resource_requested (WebKitWebView *web_view, const gchar *uri = webkit_network_request_get_uri (request); if (!formatter) { - webkit_network_request_set_uri (request, "invalid://uri"); + webkit_network_request_set_uri (request, "about:blank"); return; } @@ -499,7 +512,7 @@ mail_display_resource_requested (WebKitWebView *web_view, * a native placeholder for it. */ if (!stream && !display->priv->force_image_load && !em_format_html_can_load_images (display->priv->formatter)) { - webkit_network_request_set_uri (request, "invalid://protocol"); + webkit_network_request_set_uri (request, "about:blank"); return; } -- cgit v1.2.3