diff --git a/netroute_windows.go b/netroute_windows.go index 505c2e3..67c5014 100644 --- a/netroute_windows.go +++ b/netroute_windows.go @@ -193,12 +193,18 @@ func getIface(index uint32) *net.Interface { return nil } + physAddrLen := int(ifRow.PhysAddrLen) + if len(ifRow.PhysAddr) < physAddrLen && physAddrLen >= 0 { + physAddrLen = len(ifRow.PhysAddr) + } + physAddr := ifRow.PhysAddr[:physAddrLen] + ifaces, err := net.Interfaces() if err != nil { return nil } for _, iface := range ifaces { - if bytes.Equal(iface.HardwareAddr, ifRow.PhysAddr[:]) { + if bytes.Equal(iface.HardwareAddr, physAddr) { return &iface } }