diff --git a/virtcontainers/container.go b/virtcontainers/container.go index 20b96a585c..c2d27250ec 100644 --- a/virtcontainers/container.go +++ b/virtcontainers/container.go @@ -717,7 +717,7 @@ func (c *Container) createBlockDevices() error { } // newContainer creates a Container structure from a sandbox and a container configuration. -func newContainer(sandbox *Sandbox, contConfig ContainerConfig) (*Container, error) { +func newContainer(sandbox *Sandbox, contConfig *ContainerConfig) (*Container, error) { span, _ := sandbox.trace("newContainer") defer span.Finish() @@ -729,7 +729,7 @@ func newContainer(sandbox *Sandbox, contConfig ContainerConfig) (*Container, err id: contConfig.ID, sandboxID: sandbox.id, rootFs: contConfig.RootFs, - config: &contConfig, + config: contConfig, sandbox: sandbox, runPath: store.ContainerRuntimeRootPath(sandbox.id, contConfig.ID), configPath: store.ContainerConfigurationRootPath(sandbox.id, contConfig.ID), @@ -812,7 +812,7 @@ func (c *Container) createMounts() error { return nil } -func (c *Container) createDevices(contConfig ContainerConfig) error { +func (c *Container) createDevices(contConfig *ContainerConfig) error { // If sandbox supports "newstore", only newly created container can reach this function, // so we don't call restore when `supportNewStore` is true if !c.sandbox.supportNewStore() { diff --git a/virtcontainers/sandbox.go b/virtcontainers/sandbox.go index 04b6f5029a..6458e69812 100644 --- a/virtcontainers/sandbox.go +++ b/virtcontainers/sandbox.go @@ -1099,7 +1099,7 @@ func (s *Sandbox) fetchContainers() error { contConfig.Spec = &spec s.config.Containers[i] = contConfig - c, err := newContainer(s, contConfig) + c, err := newContainer(s, &s.config.Containers[i]) if err != nil { return err } @@ -1118,7 +1118,7 @@ func (s *Sandbox) fetchContainers() error { func (s *Sandbox) CreateContainer(contConfig ContainerConfig) (VCContainer, error) { storeAlreadyExists := store.VCContainerStoreExists(s.ctx, s.id, contConfig.ID) // Create the container. - c, err := newContainer(s, contConfig) + c, err := newContainer(s, &contConfig) if err != nil { return nil, err } @@ -1417,7 +1417,7 @@ func (s *Sandbox) createContainers() error { for _, contConfig := range s.config.Containers { - c, err := newContainer(s, contConfig) + c, err := newContainer(s, &contConfig) if err != nil { return err } diff --git a/virtcontainers/sandbox_test.go b/virtcontainers/sandbox_test.go index 807f3e9104..e6d38a310b 100644 --- a/virtcontainers/sandbox_test.go +++ b/virtcontainers/sandbox_test.go @@ -621,7 +621,7 @@ func TestSandboxGetContainer(t *testing.T) { contID := "999" contConfig := newTestContainerConfigNoop(contID) - nc, err := newContainer(p, contConfig) + nc, err := newContainer(p, &contConfig) assert.NoError(err) err = p.addContainer(nc) @@ -1043,7 +1043,7 @@ func TestDeleteStoreWhenNewContainerFail(t *testing.T) { DevType: "", }, } - _, err = newContainer(p, contConfig) + _, err = newContainer(p, &contConfig) assert.NotNil(t, err, "New container with invalid device info should fail") storePath := store.ContainerConfigurationRootPath(testSandboxID, contID) _, err = os.Stat(storePath)