diff options
author | Wynn Wolf Arbor <[email protected]> | 2020-06-12 18:07:59 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2020-06-12 10:07:59 -0600 |
commit | fa4cdde7d8195f2e1ec5c937f00cbf9ce0d6537b (patch) | |
tree | 83e8322839a34071f13a100f91d3e854e86a75af /modules | |
parent | d55c3b31ebb77df65cc052dbddc137cbe07b297e (diff) | |
download | caddy-fa4cdde7d8195f2e1ec5c937f00cbf9ce0d6537b.tar.gz caddy-fa4cdde7d8195f2e1ec5c937f00cbf9ce0d6537b.zip |
fastcgi: Make sure splitPos handles empty SplitPath correctly (#3491)
In commit f2ce81c, support for multiple path splitters was added. The
type of SplitPath changed from string to []string, and splitPos was
changed to loop through all values in SplitPath.
Before that commit, if SplitPath was empty, strings.Index returned 0 and
PATH_INFO was set correctly in buildEnv.
Currently, however, splitPos returns -1 for empty values of SplitPath,
behaving as if a split position could not be found at all. PATH_INFO is
then never set in buildEnv and remains empty.
Restore the old behaviour by explicitly checking whether SplitPath is
empty and returning 0 in splitPos.
Closes #3490
Diffstat (limited to 'modules')
-rw-r--r-- | modules/caddyhttp/reverseproxy/fastcgi/fastcgi.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/modules/caddyhttp/reverseproxy/fastcgi/fastcgi.go b/modules/caddyhttp/reverseproxy/fastcgi/fastcgi.go index 6ad5047ef..4a8c6d7ab 100644 --- a/modules/caddyhttp/reverseproxy/fastcgi/fastcgi.go +++ b/modules/caddyhttp/reverseproxy/fastcgi/fastcgi.go @@ -303,6 +303,10 @@ func (t Transport) splitPos(path string) int { // if httpserver.CaseSensitivePath { // return strings.Index(path, r.SplitPath) // } + if len(t.SplitPath) == 0 { + return 0 + } + lowerPath := strings.ToLower(path) for _, split := range t.SplitPath { if idx := strings.Index(lowerPath, strings.ToLower(split)); idx > -1 { |