Allow windows environment variables to contain =

Fix issue where environment variables with embedded equals signs were
being dropped and not passed to the container.

Fixes #26178.

Signed-off-by: Matt Richardson <matt.richardson@octopus.com>
This commit is contained in:
Matt Richardson 2016-09-05 08:44:13 +10:00
parent 1a04d7b1e1
commit bc8eabce25
2 changed files with 14 additions and 1 deletions

View file

@ -10,7 +10,7 @@ import (
func setupEnvironmentVariables(a []string) map[string]string {
r := make(map[string]string)
for _, s := range a {
arr := strings.Split(s, "=")
arr := strings.SplitN(s, "=", 2)
if len(arr) == 2 {
r[arr[0]] = arr[1]
}

View file

@ -0,0 +1,13 @@
package libcontainerd
import (
"testing"
)
func TestEnvironmentParsing(t *testing.T) {
env := []string{"foo=bar", "car=hat", "a=b=c"}
result := setupEnvironmentVariables(env)
if len(result) != 3 || result["foo"] != "bar" || result["car"] != "hat" || result["a"] != "b=c" {
t.Fatalf("Expected map[foo:bar car:hat a:b=c], got %v", result)
}
}