From 0db61ab91d86c276545312a696fbafecac9fd019 Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Thu, 22 Jan 2026 20:37:49 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BF=AE=E5=A4=8D=E9=97=AE=E9=A2=98):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B0=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- probe_socks5.go | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/probe_socks5.go b/probe_socks5.go index 6dea691..bf68278 100644 --- a/probe_socks5.go +++ b/probe_socks5.go @@ -42,10 +42,9 @@ func (a *SocksAddr) String() string { return net.JoinHostPort(a.Host, strconv.It // socks5PacketConn SOCKS5数据包连接实现 type socks5PacketConn struct { - tcpConn net.Conn - udpConn *net.UDPConn - relayAddr *net.UDPAddr - targetAddr net.Addr + tcpConn net.Conn + udpConn *net.UDPConn + relayAddr *net.UDPAddr } // ReadFrom 从UDP连接读取数据 @@ -65,9 +64,6 @@ func (c *socks5PacketConn) ReadFrom(p []byte) (n int, addr net.Addr, err error) var dataOffset int switch atyp { case 0x01: - if n < 10 { - return 0, nil, errors.New("short packet") - } ip := net.IP(buf[4:8]) port := binary.BigEndian.Uint16(buf[8:10]) rAddr = &net.UDPAddr{IP: ip, Port: int(port)} @@ -96,8 +92,8 @@ func (c *socks5PacketConn) ReadFrom(p []byte) (n int, addr net.Addr, err error) default: return 0, nil, fmt.Errorf("unknown address type: 0x%x", atyp) } - copy(p, buf[dataOffset:n]) - return n - dataOffset, rAddr, nil + copied := copy(p, buf[dataOffset:n]) + return copied, rAddr, nil } // WriteTo 写入数据到目标地址