Merge pull request #1665 from vrothberg/ignore-env-vars

fix environment variable parsing
This commit is contained in:
OpenShift Merge Robot
2018-10-23 06:39:21 -07:00
committed by GitHub
2 changed files with 7 additions and 5 deletions

View File

@ -47,7 +47,7 @@ func TestGetAllLabels(t *testing.T) {
} }
func TestGetAllLabelsBadKeyValue(t *testing.T) { func TestGetAllLabelsBadKeyValue(t *testing.T) {
inLabels := []string{"ONE1", "TWO=2"} inLabels := []string{"=badValue", "="}
fileLabels := []string{} fileLabels := []string{}
_, err := getAllLabels(fileLabels, inLabels) _, err := getAllLabels(fileLabels, inLabels)
assert.Error(t, err, assert.AnError) assert.Error(t, err, assert.AnError)

View File

@ -198,6 +198,11 @@ func readKVStrings(env map[string]string, files []string, override []string) err
func parseEnv(env map[string]string, line string) error { func parseEnv(env map[string]string, line string) error {
data := strings.SplitN(line, "=", 2) data := strings.SplitN(line, "=", 2)
// catch invalid variables such as "=" or "=A"
if data[0] == "" {
return errors.Errorf("invalid environment variable: %q", line)
}
// trim the front of a variable, but nothing else // trim the front of a variable, but nothing else
name := strings.TrimLeft(data[0], whiteSpaces) name := strings.TrimLeft(data[0], whiteSpaces)
if strings.ContainsAny(name, whiteSpaces) { if strings.ContainsAny(name, whiteSpaces) {
@ -208,10 +213,7 @@ func parseEnv(env map[string]string, line string) error {
env[name] = data[1] env[name] = data[1]
} else { } else {
// if only a pass-through variable is given, clean it up. // if only a pass-through variable is given, clean it up.
val, exists := os.LookupEnv(name) val, _ := os.LookupEnv(name)
if !exists {
return errors.Errorf("environment variable %q does not exist", name)
}
env[name] = val env[name] = val
} }
return nil return nil