The path of the new stripped URL should also be cleaned. Since an empty path
may cause unexpected errors in some HTTP handlers, e.g. http.ServeFile.
Fixes #30165
Change-Id: Ib44fdce6388b5d62ffbcab5266925ef8f13f26e2
Reviewed-on: https://go-review.googlesource.com/c/161738
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
t.Errorf("test 2: got status %v, want %v", g, e)
}
res.Body.Close()
+
+ res, err = c.Get(ts.URL + "/foo")
+ if err != nil {
+ t.Fatal(err)
+ }
+ if g, e := res.Header.Get("X-Path"), "/"; g != e {
+ t.Errorf("test 3: got %s, want %s", g, e)
+ }
+ res.Body.Close()
}
// https://golang.org/issue/18952.
*r2 = *r
r2.URL = new(url.URL)
*r2.URL = *r.URL
- r2.URL.Path = p
+ r2.URL.Path = cleanPath(p)
h.ServeHTTP(w, r2)
} else {
NotFound(w, r)