From fb3af2c7127e7f18cf38f5692cf77386add59165 Mon Sep 17 00:00:00 2001 From: Daniel Kennedy <19178580+DanielCKennedy@users.noreply.github.com> Date: Mon, 7 Aug 2023 14:20:51 -0700 Subject: [PATCH] Avoid parsing single quote empty inputs --- pkg/mapper/configmap/configmap.go | 2 +- pkg/mapper/configmap/configmap_test.go | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/pkg/mapper/configmap/configmap.go b/pkg/mapper/configmap/configmap.go index d2c48f7da..2c37431da 100644 --- a/pkg/mapper/configmap/configmap.go +++ b/pkg/mapper/configmap/configmap.go @@ -184,7 +184,7 @@ func ParseMap(m map[string]string) (userMappings []config.UserMapping, roleMappi func isSkippable(data string) bool { trimmed := strings.TrimSpace(data) - return trimmed == "" || trimmed == "``" || trimmed == "\"\"" + return trimmed == "" || trimmed == "``" || trimmed == "\"\"" || trimmed == "''" } func EncodeMap(userMappings []config.UserMapping, roleMappings []config.RoleMapping, awsAccounts []string) (m map[string]string, err error) { diff --git a/pkg/mapper/configmap/configmap_test.go b/pkg/mapper/configmap/configmap_test.go index 984228764..a41d476cd 100644 --- a/pkg/mapper/configmap/configmap_test.go +++ b/pkg/mapper/configmap/configmap_test.go @@ -353,3 +353,25 @@ func TestBadParseMap(t *testing.T) { t.Fatalf("unexpected %v != %v", emptyMap, m2) } } + +func TestBadParseMapSingleQuote(t *testing.T) { + m1 := map[string]string{ + "mapAccounts": `''`, + "mapRoles": `''`, + "mapUsers": `''`, + } + + u, r, a, err := ParseMap(m1) + if err != nil { + t.Fatal(err) + } + + m2, err := EncodeMap(u, r, a) + if err != nil { + t.Fatal(err) + } + emptyMap := map[string]string{} + if !reflect.DeepEqual(emptyMap, m2) { + t.Fatalf("unexpected %v != %v", emptyMap, m2) + } +}