]> source.dussan.org Git - rspamd.git/commitdiff
Fix url detector.
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Wed, 22 Aug 2012 18:09:46 +0000 (22:09 +0400)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Wed, 22 Aug 2012 18:09:46 +0000 (22:09 +0400)
src/url.c

index 803bd05fd33713db4690500e56bee2f4395256fc..764e5629871fc1016aa22b396cb94f96a57eb86e 100644 (file)
--- a/src/url.c
+++ b/src/url.c
@@ -1232,7 +1232,12 @@ url_tld_start (const gchar *begin, const gchar *end, const gchar *pos, url_match
 
        /* Try to find the start of the url by finding any non-urlsafe character or whitespace/punctuation */
        while (p >= begin) {
-               if (!is_urlsafe (*p) || g_ascii_isspace (*p)) {
+               if ((!is_domain (*p) && *p != '.') || g_ascii_isspace (*p)) {
+                       p ++;
+                       if (*p == '.') {
+                               /* Urls cannot start with . */
+                               return FALSE;
+                       }
                        match->m_begin = p;
                        return TRUE;
                }
@@ -1277,6 +1282,10 @@ url_web_start (const gchar *begin, const gchar *end, const gchar *pos, url_match
                        return FALSE;
                }
        }
+       if (*pos == '.') {
+               /* Urls cannot start with . */
+               return FALSE;
+       }
        match->m_begin = pos;
 
        return TRUE;