From 3e1bd0d0bf082fc555d29a7cd34607a7ad5e9ab0 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sun, 24 Jul 2011 12:11:11 +0000 Subject: Skip over credentials when lower casing host svn path=/trunk/netsurf/; revision=12624 --- utils/url.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'utils/url.c') diff --git a/utils/url.c b/utils/url.c index 52917afab..831f16761 100644 --- a/utils/url.c +++ b/utils/url.c @@ -288,9 +288,21 @@ url_func_result url_normalize(const char *url, char **result) /* make host lower-case */ if (match[URL_RE_AUTHORITY].rm_so != -1) { + /* Find @ delimiting credentials from host, if any */ for (i = match[URL_RE_AUTHORITY].rm_so; - (regoff_t) i != match[URL_RE_AUTHORITY].rm_eo; + (regoff_t) i != match[URL_RE_AUTHORITY].rm_eo; i++) { + if (norm[i] == '@') { + i++; + break; + } + } + + /* No credentials; transform entire host */ + if ((regoff_t) i == match[URL_RE_AUTHORITY].rm_eo) + i = match[URL_RE_AUTHORITY].rm_so; + + for (; (regoff_t) i != match[URL_RE_AUTHORITY].rm_eo; i++) { if (norm[i] == ':' && (i + 3) < len) { if (http && norm[i + 1] == '8' && norm[i + 2] == '0' && -- cgit v1.2.3