fix(listener/tproxy): possilly using released buffer in tproxy

This commit is contained in:
5aaee9 2024-05-21 22:20:23 +08:00
parent 43bdc76f87
commit f8c3b5d030

View file

@ -105,11 +105,13 @@ func listenLocalConn(rAddr, lAddr net.Addr, tunnel C.Tunnel) (*net.UDPConn, erro
buf := pool.Get(pool.UDPBufferSize)
br, err := lc.Read(buf)
if err != nil {
pool.Put(buf)
if errors.Is(err, net.ErrClosed) {
log.Debugln("TProxy local conn listener exit.. rAddr=%s lAddr=%s", rAddr.String(), lAddr.String())
pool.Put(buf)
return
}
log.Debugln("TProxy local conn read err=%v", err)
}
// since following localPackets are pass through this socket which listen rAddr
// I choose current listener as packet's packet conn