@marcel91200 / caddy Mirror · read-only / commits / 1f60328e
Fork 0

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",