1
0
mirror of https://github.com/labstack/echo.git synced 2024-12-24 20:14:31 +02:00

fix index out of bounds if path is empty

This commit is contained in:
Russ Egan 2016-05-31 22:10:34 -04:00
parent a98843b6e5
commit 348edc31c6
2 changed files with 12 additions and 1 deletions

View File

@ -69,7 +69,7 @@ func RemoveTrailingSlashWithConfig(config TrailingSlashConfig) echo.MiddlewareFu
path := url.Path()
qs := url.QueryString()
l := len(path) - 1
if path != "/" && path[l] == '/' {
if l >= 0 && path != "/" && path[l] == '/' {
path = path[:l]
uri := path
if qs != "" {

View File

@ -59,4 +59,15 @@ func TestRemoveTrailingSlash(t *testing.T) {
h(c)
assert.Equal(t, http.StatusMovedPermanently, rec.Status())
assert.Equal(t, "/remove-slash?key=value", rec.Header().Get(echo.HeaderLocation))
// With bare URL
req = test.NewRequest(echo.GET, "http://localhost", nil)
rec = test.NewResponseRecorder()
c = e.NewContext(req, rec)
h = RemoveTrailingSlash()(func(c echo.Context) error {
return nil
})
h(c)
assert.Equal(t, "", req.URL().Path())
assert.Equal(t, "http://localhost", req.URI())
}