From d8a2d7aaef9dac36a9b53fb99053e0c6d3c0ef43 Mon Sep 17 00:00:00 2001 From: Thomas Tendyck Date: Wed, 24 Apr 2024 14:26:10 +0200 Subject: [PATCH] fix env var from host truncated at equal sign --- ego/premain/core/core.go | 4 ++-- ego/premain/core/core_test.go | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ego/premain/core/core.go b/ego/premain/core/core.go index 99e9a91..eae169a 100644 --- a/ego/premain/core/core.go +++ b/ego/premain/core/core.go @@ -51,8 +51,8 @@ func PreMain(payload string, mounter Mounter, fs afero.Fs, hostEnviron []string) // Convert host environment string array to key-value map hostEnvironMap := make(map[string]string, len(hostEnviron)) for _, envVar := range hostEnviron { - splitString := strings.Split(envVar, "=") - hostEnvironMap[splitString[0]] = splitString[1] + name, val, _ := strings.Cut(envVar, "=") + hostEnvironMap[name] = val } // Check if we run as a Marble or a normal EGo application diff --git a/ego/premain/core/core_test.go b/ego/premain/core/core_test.go index 0c56018..658d7d8 100644 --- a/ego/premain/core/core_test.go +++ b/ego/premain/core/core_test.go @@ -33,7 +33,7 @@ func TestPremain(t *testing.T) { assert := assert.New(t) require := require.New(t) - hostEnviron := []string{"EDG_CWD=/host"} + hostEnviron := []string{"EDG_CWD=/host", "EDG_CONTAINS_EQUAL_SIGN=foo=bar"} fs := afero.NewMemMapFs() // sane default values @@ -51,6 +51,7 @@ func TestPremain(t *testing.T) { // Supply valid payload, no Marble mounter := assertionMounter{assert: assert, expectedMounts: conf.Mounts, usedTargets: make(map[string]bool), remountAsHostFS: false} assert.NoError(PreMain("", &mounter, fs, hostEnviron)) + assert.Equal("foo=bar", os.Getenv("EDG_CONTAINS_EQUAL_SIGN")) // Supply valid payload, no Marble payload, err := json.Marshal(conf)