From a1af5736bc9d34d7632295af9ea66bd3be0524a7 Mon Sep 17 00:00:00 2001 From: Vibhav Bobade Date: Tue, 27 Aug 2019 06:17:17 +0530 Subject: [PATCH] Fixed interface type casting in parser.go Signed-off-by: Vibhav Bobade --- pkg/strvals/parser.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pkg/strvals/parser.go b/pkg/strvals/parser.go index a2f02fdd1..64b25d602 100644 --- a/pkg/strvals/parser.go +++ b/pkg/strvals/parser.go @@ -243,12 +243,19 @@ func (t *parser) listItem(list []interface{}, i int) ([]interface{}, error) { // We have a nested object. Send to t.key inner := map[string]interface{}{} if len(list) > i { - inner = list[i].(map[string]interface{}) + switch list[i].(type) { + case []interface{}: + for _, v := range list[i].([]interface{}) { + inner = v.(map[string]interface{}) + } + default: + inner = list[i].(map[string]interface{}) + } } // Recurse - e := t.key(inner) - return setIndex(list, i, inner), e + err := t.key(inner) + return setIndex(list, i, inner), err default: return nil, errors.Errorf("parse error: unexpected token %v", last) }