TUN-1736: Missing headers when passing an invalid path

This commit is contained in:
Areg Harutyunyan
2019-07-24 21:01:34 -05:00
parent 3c0ea0db65
commit 3c93d9b300
2 changed files with 78 additions and 10 deletions

View File

@@ -45,16 +45,7 @@ func H2RequestHeadersToH1Request(h2 []h2mux.Header, h1 *http.Request) error {
// Otherwise the host header will be based on the origin URL
h1.Host = header.Value
case ":path":
u, err := url.Parse(header.Value)
if err != nil {
return fmt.Errorf("unparseable path")
}
resolved := h1.URL.ResolveReference(u)
// prevent escaping base URL
if !strings.HasPrefix(resolved.String(), h1.URL.String()) {
return fmt.Errorf("invalid path")
}
h1.URL = resolved
h1.URL.Path = header.Value
case "content-length":
contentLength, err := strconv.ParseInt(header.Value, 10, 64)
if err != nil {