From fb5d74d53f1017ce37df63171813fd1fb9aab94d Mon Sep 17 00:00:00 2001 From: Christian Dywan Date: Sat, 12 Dec 2009 17:40:30 +0100 Subject: [PATCH] Validate uri and title in completion in case of invalid UTF-8 --- midori/midori-locationaction.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/midori/midori-locationaction.c b/midori/midori-locationaction.c index d2617db3..525882c9 100644 --- a/midori/midori-locationaction.c +++ b/midori/midori-locationaction.c @@ -664,7 +664,10 @@ midori_location_entry_render_text_cb (GtkCellLayout* layout, : g_ascii_strdown (gtk_entry_get_text (GTK_ENTRY (entry)), -1); len = 0; - if (G_LIKELY (uri)) + /* g_uri_unescape_segment () sometimes produces garbage */ + if (G_UNLIKELY (uri && !g_utf8_validate (uri, -1, (const gchar **)&temp))) + temp[0]='\0'; + else if (G_LIKELY (uri)) { temp = g_utf8_strdown (uri, -1); if (key && *key && (start = strstr (temp, key))) @@ -685,7 +688,11 @@ midori_location_entry_render_text_cb (GtkCellLayout* layout, } if (uri && !desc_uri) desc_uri = g_markup_escape_text (uri, -1); - if (G_LIKELY (title)) + + /* g_uri_unescape_segment () sometimes produces garbage */ + if (G_UNLIKELY (title && !g_utf8_validate (title, -1, (const gchar **)&temp))) + temp[0]='\0'; + else if (G_LIKELY (title)) { temp = g_utf8_strdown (title, -1); if (key && *key && (start = strstr (temp, key)))