diff --git a/wgengine/router/ifconfig_windows.go b/wgengine/router/ifconfig_windows.go index e1169e9b6..fc7cf0d65 100644 --- a/wgengine/router/ifconfig_windows.go +++ b/wgengine/router/ifconfig_windows.go @@ -625,20 +625,17 @@ func deltaRouteData(a, b []*winipcfg.RouteData) (add, del []*winipcfg.RouteData) // getInterfaceRoutes returns all the interface's routes. // Corresponds to GetIpForwardTable2 function, but filtered by interface. -func getInterfaceRoutes(ifc *winipcfg.IPAdapterAddresses, family winipcfg.AddressFamily) ([]*winipcfg.MibIPforwardRow2, error) { +func getInterfaceRoutes(ifc *winipcfg.IPAdapterAddresses, family winipcfg.AddressFamily) (matches []*winipcfg.MibIPforwardRow2, err error) { routes, err := winipcfg.GetIPForwardTable2(family) if err != nil { return nil, err } - matches := make([]*winipcfg.MibIPforwardRow2, len(routes)) - i := 0 for i := range routes { if routes[i].InterfaceLUID == ifc.LUID { - matches[i] = &routes[i] - i++ + matches = append(matches, &routes[i]) } } - return matches[:i], nil + return } // syncRoutes incrementally sets multiples routes on an interface.