diff options
author | baude <bbaude@redhat.com> | 2021-02-18 15:43:46 -0600 |
---|---|---|
committer | baude <bbaude@redhat.com> | 2021-02-19 07:56:14 -0600 |
commit | d6b0b54121558027d087b9dcd157cb7df9d0a778 (patch) | |
tree | e2b742821f6f6fa824eb9227bb88c29572148f34 /cmd | |
parent | b2bb05d598452f7653e5b9311e3bd844b767cb26 (diff) | |
download | podman-d6b0b54121558027d087b9dcd157cb7df9d0a778.tar.gz podman-d6b0b54121558027d087b9dcd157cb7df9d0a778.tar.bz2 podman-d6b0b54121558027d087b9dcd157cb7df9d0a778.zip |
Fix segfault in run with memory-swap
when unlimited (-1) was being passed to memory-swap, podman threw a
segfault.
Fixes #9429
Signed-off-by: baude <bbaude@redhat.com>
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/podman/common/specgen.go | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/cmd/podman/common/specgen.go b/cmd/podman/common/specgen.go index 975c76fd9..eff8b43aa 100644 --- a/cmd/podman/common/specgen.go +++ b/cmd/podman/common/specgen.go @@ -148,17 +148,16 @@ func getMemoryLimits(s *specgen.SpecGenerator, c *ContainerCLIOpts) (*specs.Linu } if m := c.MemorySwap; len(m) > 0 { var ms int64 - if m == "-1" { - ms = int64(-1) - s.ResourceLimits.Memory.Swap = &ms - } else { + // only set memory swap if it was set + // -1 indicates unlimited + if m != "-1" { ms, err = units.RAMInBytes(m) + memory.Swap = &ms if err != nil { return nil, errors.Wrapf(err, "invalid value for memory") } + hasLimits = true } - memory.Swap = &ms - hasLimits = true } if m := c.KernelMemory; len(m) > 0 { mk, err := units.RAMInBytes(m) |