aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/url.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/url.c b/src/url.c
index 803bd05fd..764e56298 100644
--- 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;