diff --git a/path.go b/path.go index c079cb41..9fe1f0aa 100644 --- a/path.go +++ b/path.go @@ -25,12 +25,9 @@ func cleanPath(p string) string { if p == "" { return "/" } - // Prevent scheme-relative ("//...") or backslash-based absolute ("/\\...") paths. - for len(p) > 1 && p[0] == '/' && p[1] == '/' { - p = p[1:] - } - if len(p) > 1 && p[0] == '/' && p[1] == '\\' { - p = "/" + p[2:] + // Prevent scheme-relative or backslash-based absolute redirects. + if len(p) > 1 && p[0] == '/' && (p[1] == '/' || p[1] == '\\') { + return "/" } // Reasonably sized buffer on stack to avoid allocations in the common case.