Merge pull request #45920 from thaJeztah/fix_expose_npe

daemon/containerd: fix assignment to entry in nil map during commit
This commit is contained in:
Sebastiaan van Stijn 2023-07-10 13:53:16 +02:00 committed by GitHub
commit e477a57cc5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 2 deletions

View file

@ -393,8 +393,11 @@ func containerConfigToOciImageConfig(cfg *container.Config) ocispec.ImageConfig
StopSignal: cfg.StopSignal,
ArgsEscaped: cfg.ArgsEscaped,
}
for k, v := range cfg.ExposedPorts {
ociCfg.ExposedPorts[string(k)] = v
if len(cfg.ExposedPorts) > 0 {
ociCfg.ExposedPorts = map[string]struct{}{}
for k, v := range cfg.ExposedPorts {
ociCfg.ExposedPorts[string(k)] = v
}
}
return ociCfg

View file

@ -0,0 +1,22 @@
package containerd
import (
"testing"
"github.com/docker/docker/api/types/container"
"github.com/docker/go-connections/nat"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
// regression test for https://github.com/moby/moby/issues/45904
func TestContainerConfigToOciImageConfig(t *testing.T) {
ociCFG := containerConfigToOciImageConfig(&container.Config{
ExposedPorts: nat.PortSet{
"80/tcp": struct{}{},
},
})
expected := map[string]struct{}{"80/tcp": {}}
assert.Check(t, is.DeepEqual(ociCFG.ExposedPorts, expected))
}