mirror of
https://github.com/containers/podman.git
synced 2025-10-25 18:25:59 +08:00
Merge pull request #1665 from vrothberg/ignore-env-vars
fix environment variable parsing
This commit is contained in:
@ -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)
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user