From 6124605f019de0f3560928133de51c445b7aa7bc Mon Sep 17 00:00:00 2001 From: tariqibrahim Date: Fri, 22 Feb 2019 13:01:59 -0800 Subject: [PATCH] fix: allow for gzip and b64 encoding for raw Addon data by decoding the input beforehand --- pkg/engine/engine.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/engine/engine.go b/pkg/engine/engine.go index 9cbb3c4f88a..6e3469440e9 100644 --- a/pkg/engine/engine.go +++ b/pkg/engine/engine.go @@ -646,6 +646,11 @@ func getBase64CustomScript(csFilename string) string { return getBase64CustomScriptFromStr(csStr) } +func getStringFromBase64(str string) (string, error) { + decodedBytes, err := base64.StdEncoding.DecodeString(str) + return string(decodedBytes), err +} + // getBase64CustomScript will return a base64 of the CSE func getBase64CustomScriptFromStr(str string) string { var gzipB bytes.Buffer @@ -719,7 +724,11 @@ func getContainerAddonsString(properties *api.Properties, sourcePath string) str if setting.isEnabled { var input string if setting.rawScript != "" { - input = setting.rawScript + var err error + input, err = getStringFromBase64(setting.rawScript) + if err != nil { + return "" + } } else { orchProfile := properties.OrchestratorProfile versions := strings.Split(orchProfile.OrchestratorVersion, ".")