From d74913f871414ddac9a3884fc6aef4492ee4f65f Mon Sep 17 00:00:00 2001 From: Francis Lavoie Date: Mon, 23 Aug 2021 13:26:07 -0400 Subject: caddyfile: Error on invalid site addresses containing comma (#4302) Some users forget to use a comma between their site addresses. This is invalid (commas aren't a valid character in domains) and later parts of the code like certificate automation will try to use this otherwise, which doesn't make sense. Best to error as early as possible. Example thread on the forums where this happened: https://caddy.community/t/simplify-caddyfile/13281/9 --- caddyconfig/caddyfile/parse.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/caddyconfig/caddyfile/parse.go b/caddyconfig/caddyfile/parse.go index d870765..5906bdd 100755 --- a/caddyconfig/caddyfile/parse.go +++ b/caddyconfig/caddyfile/parse.go @@ -229,6 +229,13 @@ func (p *parser) addresses() error { expectingAnother = false // but we may still see another one on this line } + // If there's a comma here, it's probably because they didn't use a space + // between their two domains, e.g. "foo.com,bar.com", which would not be + // parsed as two separate site addresses. + if strings.Contains(tkn, ",") { + return p.Errf("Site addresses cannot contain a comma ',': '%s' - put a space after the comma to separate site addresses", tkn) + } + p.block.Keys = append(p.block.Keys, tkn) } -- cgit v1.2.3