diff --git a/p2p/discover/v4_udp.go b/p2p/discover/v4_udp.go index 9fb5320824..8669563781 100644 --- a/p2p/discover/v4_udp.go +++ b/p2p/discover/v4_udp.go @@ -555,10 +555,8 @@ func (t *UDPv4) readLoop(unhandled chan<- ReadPacket) { if err := t.handlePacket(from, buf[:nbytes]); err != nil && unhandled == nil { t.log.Debug("Bad discv4 packet", "addr", from, "err", err) } else if err != nil && unhandled != nil { - packet := make([]byte, nbytes) - copy(packet, buf[:nbytes]) - select { - case unhandled <- ReadPacket{packet, from}: + p := ReadPacket{bytes.Clone(buf[:nbytes]), from} + case unhandled <- p: default: } }