diff --git a/daemon/libnetwork/drivers/bridge/bridge_linux.go b/daemon/libnetwork/drivers/bridge/bridge_linux.go index cd82dabd16..602d6e4d28 100644 --- a/daemon/libnetwork/drivers/bridge/bridge_linux.go +++ b/daemon/libnetwork/drivers/bridge/bridge_linux.go @@ -1399,12 +1399,7 @@ func (d *driver) EndpointOperInfo(nid, eid string) (map[string]any, error) { m := make(map[string]any) if ep.extConnConfig != nil && ep.extConnConfig.ExposedPorts != nil { - // Return a copy of the config data - epc := make([]types.TransportPort, 0, len(ep.extConnConfig.ExposedPorts)) - for _, tp := range ep.extConnConfig.ExposedPorts { - epc = append(epc, tp.GetCopy()) - } - m[netlabel.ExposedPorts] = epc + m[netlabel.ExposedPorts] = slices.Clone(ep.extConnConfig.ExposedPorts) } if ep.portMapping != nil { diff --git a/daemon/libnetwork/drivers/bridge/internal/firewaller/stub.go b/daemon/libnetwork/drivers/bridge/internal/firewaller/stub.go index 0b4a522272..70a4715e0e 100644 --- a/daemon/libnetwork/drivers/bridge/internal/firewaller/stub.go +++ b/daemon/libnetwork/drivers/bridge/internal/firewaller/stub.go @@ -128,13 +128,7 @@ func (nw *StubFirewallerNetwork) AddLink(_ context.Context, parentIP, childIP ne nw.Links = append(nw.Links, stubFirewallerLink{ parentIP: parentIP, childIP: childIP, - ports: func() []types.TransportPort { - res := make([]types.TransportPort, 0, len(ports)) - for _, p := range ports { - res = append(res, p.GetCopy()) - } - return res - }(), + ports: slices.Clone(ports), }) return nil } diff --git a/daemon/libnetwork/drivers/windows/windows.go b/daemon/libnetwork/drivers/windows/windows.go index 32c911a74d..3c30481c1d 100644 --- a/daemon/libnetwork/drivers/windows/windows.go +++ b/daemon/libnetwork/drivers/windows/windows.go @@ -17,6 +17,7 @@ import ( "fmt" "net" "net/http" + "slices" "strconv" "strings" "sync" @@ -863,12 +864,7 @@ func (d *driver) EndpointOperInfo(nid, eid string) (map[string]any, error) { data["hnsid"] = ep.profileID if ep.epConnectivity.ExposedPorts != nil { - // Return a copy of the config data - epc := make([]types.TransportPort, 0, len(ep.epConnectivity.ExposedPorts)) - for _, tp := range ep.epConnectivity.ExposedPorts { - epc = append(epc, tp.GetCopy()) - } - data[netlabel.ExposedPorts] = epc + data[netlabel.ExposedPorts] = slices.Clone(ep.epConnectivity.ExposedPorts) } if ep.portMapping != nil { diff --git a/daemon/libnetwork/types/types.go b/daemon/libnetwork/types/types.go index 12db5dd7be..588573f873 100644 --- a/daemon/libnetwork/types/types.go +++ b/daemon/libnetwork/types/types.go @@ -60,11 +60,6 @@ func (t *TransportPort) Equal(o *TransportPort) bool { return true } -// GetCopy returns a copy of this TransportPort structure instance -func (t *TransportPort) GetCopy() TransportPort { - return TransportPort{Proto: t.Proto, Port: t.Port} -} - // String returns the TransportPort structure in string form func (t *TransportPort) String() string { return fmt.Sprintf("%s/%d", t.Proto.String(), t.Port)