mirror of
https://github.com/containers/podman.git
synced 2025-05-20 00:27:03 +08:00
Fix podman network disconnect wrong NetworkStatus number
The allocated `tmpNetworkStatus` must be allocated with the length 0. Otherwise append would add new elements to the end of the slice and not at the beginning of the allocated memory. This caused inspect to fail since the number of networks did not matched the number of network statuses. Fixes #9234 Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
This commit is contained in:
@ -1180,7 +1180,7 @@ func (c *Container) NetworkDisconnect(nameOrID, netName string, force bool) erro
|
||||
// update network status if container is not running
|
||||
networkStatus := c.state.NetworkStatus
|
||||
// clip out the index of the network
|
||||
tmpNetworkStatus := make([]*cnitypes.Result, len(networkStatus)-1)
|
||||
tmpNetworkStatus := make([]*cnitypes.Result, 0, len(networkStatus)-1)
|
||||
for k, v := range networkStatus {
|
||||
if index != k {
|
||||
tmpNetworkStatus = append(tmpNetworkStatus, v)
|
||||
|
@ -74,6 +74,11 @@ var _ = Describe("Podman network connect and disconnect", func() {
|
||||
dis.WaitWithDefaultTimeout()
|
||||
Expect(dis.ExitCode()).To(BeZero())
|
||||
|
||||
inspect := podmanTest.Podman([]string{"container", "inspect", "test", "--format", "{{len .NetworkSettings.Networks}}"})
|
||||
inspect.WaitWithDefaultTimeout()
|
||||
Expect(inspect.ExitCode()).To(BeZero())
|
||||
Expect(inspect.OutputToString()).To(Equal("0"))
|
||||
|
||||
exec = podmanTest.Podman([]string{"exec", "-it", "test", "ip", "addr", "show", "eth0"})
|
||||
exec.WaitWithDefaultTimeout()
|
||||
Expect(exec.ExitCode()).ToNot(BeZero())
|
||||
@ -146,6 +151,11 @@ var _ = Describe("Podman network connect and disconnect", func() {
|
||||
connect.WaitWithDefaultTimeout()
|
||||
Expect(connect.ExitCode()).To(BeZero())
|
||||
|
||||
inspect := podmanTest.Podman([]string{"container", "inspect", "test", "--format", "{{len .NetworkSettings.Networks}}"})
|
||||
inspect.WaitWithDefaultTimeout()
|
||||
Expect(inspect.ExitCode()).To(BeZero())
|
||||
Expect(inspect.OutputToString()).To(Equal("2"))
|
||||
|
||||
exec = podmanTest.Podman([]string{"exec", "-it", "test", "ip", "addr", "show", "eth1"})
|
||||
exec.WaitWithDefaultTimeout()
|
||||
Expect(exec.ExitCode()).To(BeZero())
|
||||
@ -167,6 +177,11 @@ var _ = Describe("Podman network connect and disconnect", func() {
|
||||
dis.WaitWithDefaultTimeout()
|
||||
Expect(dis.ExitCode()).To(BeZero())
|
||||
|
||||
inspect := podmanTest.Podman([]string{"container", "inspect", "test", "--format", "{{len .NetworkSettings.Networks}}"})
|
||||
inspect.WaitWithDefaultTimeout()
|
||||
Expect(inspect.ExitCode()).To(BeZero())
|
||||
Expect(inspect.OutputToString()).To(Equal("2"))
|
||||
|
||||
start := podmanTest.Podman([]string{"start", "test"})
|
||||
start.WaitWithDefaultTimeout()
|
||||
Expect(start.ExitCode()).To(BeZero())
|
||||
@ -202,6 +217,11 @@ var _ = Describe("Podman network connect and disconnect", func() {
|
||||
dis.WaitWithDefaultTimeout()
|
||||
Expect(dis.ExitCode()).To(BeZero())
|
||||
|
||||
inspect := podmanTest.Podman([]string{"container", "inspect", "test", "--format", "{{len .NetworkSettings.Networks}}"})
|
||||
inspect.WaitWithDefaultTimeout()
|
||||
Expect(inspect.ExitCode()).To(BeZero())
|
||||
Expect(inspect.OutputToString()).To(Equal("1"))
|
||||
|
||||
start := podmanTest.Podman([]string{"start", "test"})
|
||||
start.WaitWithDefaultTimeout()
|
||||
Expect(start.ExitCode()).To(BeZero())
|
||||
|
Reference in New Issue
Block a user