]> spindle.queued.net Git - midori/commitdiff
Validate formatted URI, otherwise pass the original URI
authorChristian Dywan <christian@twotoasts.de>
Sat, 12 Dec 2009 00:21:06 +0000 (01:21 +0100)
committerChristian Dywan <christian@twotoasts.de>
Sat, 12 Dec 2009 00:21:06 +0000 (01:21 +0100)
Apparently g_uri_unescape_string can return invalid UTF8, so
until we can replace or fix it, we double check to avoid
crashing in g_markup_escape_text and other places.

midori/sokoke.c

index 823662adfec1e4002307cbbee488f295288acac3..932d8e6b92cfb79c3232166a1be8de9f528a95fe 100644 (file)
@@ -610,6 +610,11 @@ sokoke_format_uri_for_display (const gchar* uri)
 
         if (!unescaped)
             return g_strdup (uri);
+        else if (!g_utf8_validate (unescaped, -1, NULL))
+        {
+            g_free (unescaped);
+            return g_strdup (uri);
+        }
 
         hostname = sokoke_hostname_from_uri (unescaped, &path);
         decoded = g_hostname_to_unicode (hostname);
@@ -629,6 +634,11 @@ sokoke_format_uri_for_display (const gchar* uri)
 
         if (!unescaped)
             return g_strdup (uri);
+        else if (!g_utf8_validate (unescaped, -1, NULL))
+        {
+            g_free (unescaped);
+            return g_strdup (uri);
+        }
 
         if (!idna_to_unicode_8z8z (unescaped, &decoded, 0) == IDNA_SUCCESS)
             return unescaped;