mirror of
https://github.com/golang/go
synced 2024-09-29 14:24:32 -06:00
net/http: clean the path of the stripped URL by StripPrefix
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>
This commit is contained in:
parent
5a7e8f466e
commit
ea65d015b8
@ -2900,6 +2900,15 @@ func TestStripPrefix(t *testing.T) {
|
||||
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.
|
||||
|
@ -2030,7 +2030,7 @@ func StripPrefix(prefix string, h Handler) Handler {
|
||||
*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)
|
||||
|
Loading…
Reference in New Issue
Block a user