From 8ea144e31f1afdda16cbe0da06b8be2e948a6bf2 Mon Sep 17 00:00:00 2001 From: KUOKA Yusuke Date: Thu, 21 Nov 2019 22:40:53 +0900 Subject: [PATCH] Validate on recursion (#993) Fixes #983 --- pkg/app/desired_state_file_loader.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/app/desired_state_file_loader.go b/pkg/app/desired_state_file_loader.go index 31932a9d..d0c29d66 100644 --- a/pkg/app/desired_state_file_loader.go +++ b/pkg/app/desired_state_file_loader.go @@ -126,7 +126,20 @@ func (ld *desiredStateLoader) loadFileWithOverrides(inheritedEnv, overrodeEnv *e ) } - return self, err + if err != nil { + return nil, err + } + + for i, h := range self.Helmfiles { + if h.Path == f { + return nil, fmt.Errorf("%s contains a recursion into the same sub-helmfile at helmfiles[%d]", f, i) + } + if h.Path == "." { + return nil, fmt.Errorf("%s contains a recursion into the the directory containing this helmfile at helmfiles[%d]", f, i) + } + } + + return self, nil } func (a *desiredStateLoader) underlying() *state.StateCreator {