diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-10-02 06:06:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-02 06:06:53 -0400 |
commit | 0b7b22243798650841cd9b790809a0a482f4cbcb (patch) | |
tree | 3fd89f7379c3c0a9916f0aac7292d9b287cde43b | |
parent | defd427503c2b36d64686b6ef327ce16810855c1 (diff) | |
parent | f0c71168481e525414a38dc3eaf5a027afe2d4e7 (diff) | |
download | podman-0b7b22243798650841cd9b790809a0a482f4cbcb.tar.gz podman-0b7b22243798650841cd9b790809a0a482f4cbcb.tar.bz2 podman-0b7b22243798650841cd9b790809a0a482f4cbcb.zip |
Merge pull request #7877 from baude/compatapipriv
fix compat api privileged and entrypoint code
-rw-r--r-- | pkg/spec/config_linux.go | 3 | ||||
-rw-r--r-- | pkg/spec/spec.go | 19 |
2 files changed, 17 insertions, 5 deletions
diff --git a/pkg/spec/config_linux.go b/pkg/spec/config_linux.go index d03663f12..319cce61f 100644 --- a/pkg/spec/config_linux.go +++ b/pkg/spec/config_linux.go @@ -200,6 +200,9 @@ func getDevices(path string) ([]*configs.Device, error) { } case f.Name() == "console": continue + case f.Mode()&os.ModeSymlink != 0: + // do not add symlink'd devices to privileged devices + continue } device, err := devices.DeviceFromPath(filepath.Join(path, f.Name()), "rwm") if err != nil { diff --git a/pkg/spec/spec.go b/pkg/spec/spec.go index 42228540c..81620997f 100644 --- a/pkg/spec/spec.go +++ b/pkg/spec/spec.go @@ -182,14 +182,23 @@ func (config *CreateConfig) createConfigToOCISpec(runtime *libpod.Runtime, userM g.SetProcessCwd(config.WorkDir) ProcessArgs := make([]string, 0) - if len(config.Entrypoint) > 0 { - ProcessArgs = config.Entrypoint + // We need to iterate the input for entrypoint because it is a []string + // but "" is a legit json input, which translates into a []string with an + // empty position. This messes up the eventual command being executed + // in the container + for _, a := range config.Entrypoint { + if len(a) > 0 { + ProcessArgs = append(ProcessArgs, a) + } } - if len(config.Command) > 0 { - ProcessArgs = append(ProcessArgs, config.Command...) + // Same issue as explained above for config.Entrypoint. + for _, a := range config.Command { + if len(a) > 0 { + ProcessArgs = append(ProcessArgs, a) + } } - g.SetProcessArgs(ProcessArgs) + g.SetProcessArgs(ProcessArgs) g.SetProcessTerminal(config.Tty) for key, val := range config.Annotations { |