Fix: handle parse socks5 udp address properly (#2220)

(cherry picked from commit bec4df7b12)
This commit is contained in:
Kaming Chan 2022-07-25 12:44:00 +08:00 committed by metacubex
parent ddf1c74091
commit e2d71abecd
2 changed files with 6 additions and 0 deletions

View File

@ -241,6 +241,9 @@ func ReadPacket(r io.Reader, payload []byte) (net.Addr, int, error) {
return nil, 0, errors.New("remote address invalid") return nil, 0, errors.New("remote address invalid")
} }
uAddr := addr.UDPAddr() uAddr := addr.UDPAddr()
if uAddr == nil {
return nil, 0, errors.New("parse addr error")
}
length := len(payload) length := len(payload)
if n-headLen < length { if n-headLen < length {

View File

@ -250,6 +250,9 @@ func ReadPacket(r io.Reader, payload []byte) (net.Addr, int, int, error) {
return nil, 0, 0, errors.New("read addr error") return nil, 0, 0, errors.New("read addr error")
} }
uAddr := addr.UDPAddr() uAddr := addr.UDPAddr()
if uAddr == nil {
return nil, 0, 0, errors.New("parse addr error")
}
if _, err = io.ReadFull(r, payload[:2]); err != nil { if _, err = io.ReadFull(r, payload[:2]); err != nil {
return nil, 0, 0, errors.New("read length error") return nil, 0, 0, errors.New("read length error")