Unmap more netip.Addr vars created using AddrFromSlice

Signed-off-by: Rob Murray <rob.murray@docker.com>
This commit is contained in:
Rob Murray
2025-11-24 16:51:14 +00:00
parent 2effc1bfd4
commit a2de9bb334
8 changed files with 14 additions and 10 deletions

View File

@@ -1796,10 +1796,12 @@ func (d *driver) link(network *bridgeNetwork, endpoint *bridgeEndpoint, enable b
if !ok {
return fmt.Errorf("invalid parent endpoint IP: %s", parentEndpoint.addr.IP)
}
parentAddr = parentAddr.Unmap()
childAddr, ok := netip.AddrFromSlice(endpoint.addr.IP)
if !ok {
return fmt.Errorf("invalid parent endpoint IP: %s", endpoint.addr.IP)
}
childAddr = childAddr.Unmap()
if enable {
if err := network.firewallerNetwork.AddLink(context.TODO(), parentAddr, childAddr, ec.ExposedPorts); err != nil {
@@ -1826,10 +1828,12 @@ func (d *driver) link(network *bridgeNetwork, endpoint *bridgeEndpoint, enable b
if !ok {
return fmt.Errorf("invalid parent endpoint IP: %s", endpoint.addr.IP)
}
parentAddr = parentAddr.Unmap()
childAddr, ok := netip.AddrFromSlice(childEndpoint.addr.IP)
if !ok {
return fmt.Errorf("invalid parent endpoint IP: %s", childEndpoint.addr.IP)
}
childAddr = childAddr.Unmap()
if enable {
if err := network.firewallerNetwork.AddLink(context.TODO(), parentAddr, childAddr, childEndpoint.extConnConfig.ExposedPorts); err != nil {

View File

@@ -1010,7 +1010,7 @@ func (ep *Endpoint) getEtcHostsAddrs() []netip.Addr {
var addresses []netip.Addr
if ep.iface.addr != nil {
if addr, ok := netip.AddrFromSlice(ep.iface.addr.IP); ok {
addresses = append(addresses, addr)
addresses = append(addresses, addr.Unmap())
}
}
if ep.iface.addrv6 != nil {

View File

@@ -64,7 +64,7 @@ func NewPortDriverClient(ctx context.Context) (*PortDriverClient, error) {
return nil, fmt.Errorf("unable to use child IP %s from network driver (%q)",
info.NetworkDriver.ChildIP, info.NetworkDriver.Driver)
}
pdc.childIP = childIP
pdc.childIP = childIP.Unmap()
}
pdc.protos = make(map[string]struct{}, len(info.PortDriver.Protos))

View File

@@ -302,7 +302,7 @@ func (nDB *NetworkDB) rejoinClusterBootStrap() {
continue
}
nodeIP, _ := netip.AddrFromSlice(node.Addr)
if bootstrapIP == netip.AddrPortFrom(nodeIP, node.Port) {
if bootstrapIP == netip.AddrPortFrom(nodeIP.Unmap(), node.Port) {
// One of the bootstrap nodes (and not myself) is part of the cluster, return
nDB.RUnlock()
return

View File

@@ -64,7 +64,7 @@ func (pa *OSAllocator) AllocateHostPort(hostIP net.IP, proto types.Protocol, hos
return 0, fmt.Errorf("invalid HostIP: %s", hostIP)
}
hAddrPort := netip.AddrPortFrom(addr, uint16(allocatedHostPort))
hAddrPort := netip.AddrPortFrom(addr.Unmap(), uint16(allocatedHostPort))
if _, exists := pa.osListeners[proto][hAddrPort]; exists {
return 0, ErrPortMappedForIP
}
@@ -132,7 +132,7 @@ func (pa *OSAllocator) Deallocate(hostIP net.IP, proto types.Protocol, hostPort
return ErrPortNotMapped
}
hAddrPort := netip.AddrPortFrom(addr, uint16(hostPort))
hAddrPort := netip.AddrPortFrom(addr.Unmap(), uint16(hostPort))
osListener, exists := pa.osListeners[proto][hAddrPort]
if !exists {
return ErrPortNotMapped

View File

@@ -95,7 +95,7 @@ func (pm PortMapper) MapPorts(ctx context.Context, cfg []portmapperapi.PortBindi
pb.PortBinding.HostPortEnd = pb.HostPort
childHIP, _ := netip.AddrFromSlice(cfg[i].ChildHostIP)
pb.NAT = netip.AddrPortFrom(childHIP, pb.PortBinding.HostPort)
pb.NAT = netip.AddrPortFrom(childHIP.Unmap(), pb.PortBinding.HostPort)
bindings = append(bindings, pb)
}
@@ -133,7 +133,7 @@ func setChildHostIP(pdc PortDriverClient, req portmapperapi.PortBindingReq) port
return req
}
hip, _ := netip.AddrFromSlice(req.HostIP)
req.ChildHostIP = pdc.ChildHostIP(hip).AsSlice()
req.ChildHostIP = pdc.ChildHostIP(hip.Unmap()).AsSlice()
return req
}
@@ -153,7 +153,7 @@ func configPortDriver(ctx context.Context, pbs []portmapperapi.PortBinding, pdc
if !ok {
return fmt.Errorf("invalid child host IP address %s in %s", b.ChildHostIP, b)
}
pbs[i].PortDriverRemove, err = pdc.AddPort(ctx, b.Proto.String(), hip, chip, int(b.HostPort))
pbs[i].PortDriverRemove, err = pdc.AddPort(ctx, b.Proto.String(), hip.Unmap(), chip.Unmap(), int(b.HostPort))
if err != nil {
var pErr *rlkclient.ProtocolUnsupportedError
if errors.As(err, &pErr) {