From 893023639626457445c4df30fcd00c82aaefc970 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Tue, 17 Dec 2019 16:10:06 +0100 Subject: [PATCH] fix: invalid label/flag parsing. --- pkg/config/parser/labels_decode.go | 4 ++++ pkg/config/parser/labels_decode_test.go | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/pkg/config/parser/labels_decode.go b/pkg/config/parser/labels_decode.go index 733662849..4ecc5be46 100644 --- a/pkg/config/parser/labels_decode.go +++ b/pkg/config/parser/labels_decode.go @@ -21,6 +21,10 @@ func DecodeToNode(labels map[string]string, rootName string, filters ...string) var parts []string for _, v := range split { + if v == "" { + return nil, fmt.Errorf("invalid element: %s", key) + } + if v[0] == '[' { return nil, fmt.Errorf("invalid leading character '[' in field name (bracket is a slice delimiter): %s", v) } diff --git a/pkg/config/parser/labels_decode_test.go b/pkg/config/parser/labels_decode_test.go index cd854acf7..b742a615d 100644 --- a/pkg/config/parser/labels_decode_test.go +++ b/pkg/config/parser/labels_decode_test.go @@ -26,6 +26,15 @@ func TestDecodeToNode(t *testing.T) { in: map[string]string{}, expected: expected{node: nil}, }, + { + desc: "invalid label, ending by a dot", + in: map[string]string{ + "traefik.http.": "bar", + }, + expected: expected{ + error: true, + }, + }, { desc: "level 1", in: map[string]string{