From: Vsevolod Stakhov Date: Wed, 1 Jul 2015 15:34:14 +0000 (+0100) Subject: Fix parsing of multiple slashes in URL. X-Git-Tag: 1.0.0~465 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=09f370a1cdd54c889facb5633a678acf749ca7f7;p=thirdparty%2Frspamd.git Fix parsing of multiple slashes in URL. --- diff --git a/src/libserver/url.c b/src/libserver/url.c index 5eccdebaef..2de64cb333 100644 --- a/src/libserver/url.c +++ b/src/libserver/url.c @@ -451,10 +451,14 @@ rspamd_mailto_parse (struct http_parser_url *u, const gchar *str, gsize len, st = parse_prefix_question; p ++; } - else { + else if (t != '/') { c = p; st = parse_user; } + else { + /* Skip multiple slashes */ + p ++; + } break; case parse_prefix_question: if (t == 't') { @@ -608,14 +612,21 @@ rspamd_web_parse (struct http_parser_url *u, const gchar *str, gsize len, p ++; break; case parse_slash_slash: - c = p; - st = parse_domain; - slash = p; - if (*p == '[') { - st = parse_ipv6; - p ++; + if (t != '/') { c = p; + st = parse_domain; + slash = p; + + if (*p == '[') { + st = parse_ipv6; + p ++; + c = p; + } + } + else { + /* Skip multiple slashes */ + p ++; } break; case parse_ipv6: