Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
Mirrored from https://github.com/Slazee/caddy.git
Synced Nov 12, 22:00 UTC
caddyfile: Fix variadic placeholder false positive when token contains `:` (#5883)
WeidiDeng committed
Oct 13, 2023 at 14:28 UTC
1f60328e1740143f76bdee598281ebce8c4c8e3f
2 files changed
+11
caddyconfig/caddyfile/importargs.go
+7
@@ -52,6 +52,13 @@ func parseVariadic(token Token, argCount int) (bool, int, int) {
52
return false, 0, 0
53
}
54
55
+ // A valid token may contain several placeholders, and
56
+ // they may be separated by ":". It's not variadic.
57
+ // https://github.com/caddyserver/caddy/issues/5716
58
+ if strings.Contains(start, "}") || strings.Contains(end, "{") {
59
+ return false, 0, 0
60
+ }
61
+
62
var (
63
startIndex = 0
64
endIndex = argCount
caddyconfig/caddyfile/parse_test.go
+4
@@ -91,6 +91,10 @@ func TestParseVariadic(t *testing.T) {
91
input: "{args[0:10]}",
92
result: true,
93
},
94
+ {
95
+ input: "{args[0]}:{args[1]}:{args[2]}",
96
+ result: false,
97
+ },
98
} {
99
token := Token{
100
File: "test",