diff --git a/plugin/grpc/setup.go b/plugin/grpc/setup.go index 44527ca5b..1325438f6 100644 --- a/plugin/grpc/setup.go +++ b/plugin/grpc/setup.go @@ -56,7 +56,11 @@ func parseStanza(c *caddy.Controller) (*GRPC, error) { if !c.Args(&g.from) { return g, c.ArgErr() } - g.from = plugin.Host(g.from).NormalizeExact()[0] // only the first is used. + normalized := plugin.Host(g.from).NormalizeExact() + if len(normalized) == 0 { + return g, fmt.Errorf("unable to normalize '%s'", g.from) + } + g.from = normalized[0] // only the first is used. to := c.RemainingArgs() if len(to) == 0 { diff --git a/plugin/grpc/setup_test.go b/plugin/grpc/setup_test.go index 9f571a598..1d9e93b7f 100644 --- a/plugin/grpc/setup_test.go +++ b/plugin/grpc/setup_test.go @@ -30,6 +30,7 @@ func TestSetup(t *testing.T) { {"grpc . 127.0.0.1 {\nblaatl\n}\n", true, "", nil, "unknown property"}, {`grpc . ::1 grpc com ::2`, true, "", nil, "plugin"}, + {"grpc xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 127.0.0.1", true, "", nil, "unable to normalize 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'"}, } for i, test := range tests {