diff --git a/relay/relay.go b/relay/relay.go index e74ed87..e0a6a98 100644 --- a/relay/relay.go +++ b/relay/relay.go @@ -187,6 +187,8 @@ func (s *UDPProxyServer) readPackets() { n, remoteAddr, err := s.conn.ReadFromUDP(buf) if err != nil { logger.Error("Error reading UDP packet: %v", err) + // Return buffer to pool on read error to avoid leaks + bufferPool.Put(buf[:1500]) continue } s.packetChan <- Packet{data: buf[:n], remoteAddr: remoteAddr, n: n}