Commit fbcd5c9b authored by Robert Obryk's avatar Robert Obryk Committed by Mikio Hara

go.net/proxy: don't pass invalid domain name length to SOCKS5 proxies

SOCKS5 uses a single-byte field for domain name length. This change
causes dials to domain names longer than 255 chars to fail instead
of sending an invalid request to the proxy.

LGTM=mikioh.mikioh
R=golang-codereviews, mikioh.mikioh
CC=golang-codereviews
https://golang.org/cl/90790044
parent 4609aced
......@@ -149,6 +149,9 @@ func (s *socks5) Dial(network, addr string) (net.Conn, error) {
}
buf = append(buf, ip...)
} else {
if len(host) > 255 {
return nil, errors.New("proxy: destination hostname too long: " + host)
}
buf = append(buf, socks5Domain)
buf = append(buf, byte(len(host)))
buf = append(buf, host...)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment