diff --git a/ipv4/control_bsd.go b/ipv4/control_bsd.go index 19845c55..9158daf2 100644 --- a/ipv4/control_bsd.go +++ b/ipv4/control_bsd.go @@ -35,6 +35,7 @@ func marshalInterface(b []byte, cm *ControlMessage) []byte { } func parseInterface(cm *ControlMessage, b []byte) { - sadl := (*syscall.SockaddrDatalink)(unsafe.Pointer(&b[0])) + var sadl syscall.SockaddrDatalink + copy((*[unsafe.Sizeof(&sadl)]byte)(unsafe.Pointer(&sadl))[:], b) cm.IfIndex = int(sadl.Index) }