From: Christian Dywan <christian@twotoasts.de>
Date: Wed, 29 Aug 2012 18:28:46 +0000 (+0200)
Subject: Check that valid IP address has no leading 0
X-Git-Url: https://spindle.queued.net/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58d1436d4e37787c0d7107e8f542b9f061b39086;p=midori

Check that valid IP address has no leading 0
---

diff --git a/katze/midori-uri.vala b/katze/midori-uri.vala
index 5a8fab3e..21681cb0 100644
--- a/katze/midori-uri.vala
+++ b/katze/midori-uri.vala
@@ -131,7 +131,7 @@ namespace Midori {
             if (uri.chr (-1, '@') != null)
                 return is_ip_address (uri.split ("@")[1]);
             /* IPv4 */
-            if (uri[0].isdigit () && (uri.chr (4, '.') != null))
+            if (uri[0] != '0' && uri[0].isdigit () && (uri.chr (4, '.') != null))
                 return true;
             /* IPv6 */
             if (uri[0].isalnum () && uri[1].isalnum ()
diff --git a/tests/magic-uri.c b/tests/magic-uri.c
index 826307fd..d90e2b3f 100644
--- a/tests/magic-uri.c
+++ b/tests/magic-uri.c
@@ -258,6 +258,7 @@ magic_uri_ip (void)
 {
     g_assert (midori_uri_is_ip_address ("192.168.1.1"));
     g_assert (midori_uri_is_ip_address ("192.168.1.1:1234"));
+    g_assert (!midori_uri_is_ip_address ("0.168.1.1"));
     g_assert (midori_uri_is_ip_address ("user@192.168.1.1"));
     g_assert (midori_uri_is_ip_address ("user:password@192.168.1.1"));
     g_assert (midori_uri_is_ip_address ("2001:0db8:85a3:0000:0000:8a2e:0370:7334"));