From: Derek Phan Date: Tue, 13 Aug 2019 01:05:19 +0000 (+0000) Subject: net/http: remove redundant port validation X-Git-Tag: go1.14beta1~1230 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=9c295bdeabb47891e216139d88881613a52514b8;p=gostls13.git net/http: remove redundant port validation The URL port is already checked in net/url, so we can remove the redundant validation in net/http. Fixes #33600 Change-Id: I62511a452df6262d4b66180933758d34627ff9df GitHub-Last-Rev: c19afa31025fee68ba0601bb75e9e20e09a36822 GitHub-Pull-Request: golang/go#33611 Reviewed-on: https://go-review.googlesource.com/c/go/+/190057 Run-TryBot: Emmanuel Odeke TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/net/http/transport.go b/src/net/http/transport.go index ee279877e0..f5e482d3f7 100644 --- a/src/net/http/transport.go +++ b/src/net/http/transport.go @@ -710,20 +710,10 @@ func resetProxyConfig() { } func (t *Transport) connectMethodForRequest(treq *transportRequest) (cm connectMethod, err error) { - // TODO: the validPort check is redundant after CL 189258, as url.URL.Port - // only returns valid ports now. golang.org/issue/33600 - if port := treq.URL.Port(); !validPort(port) { - return cm, fmt.Errorf("invalid URL port %q", port) - } cm.targetScheme = treq.URL.Scheme cm.targetAddr = canonicalAddr(treq.URL) if t.Proxy != nil { cm.proxyURL, err = t.Proxy(treq.Request) - if err == nil && cm.proxyURL != nil { - if port := cm.proxyURL.Port(); !validPort(port) { - return cm, fmt.Errorf("invalid proxy URL port %q", port) - } - } } cm.onlyH1 = treq.requiresHTTP1() return cm, err @@ -2702,15 +2692,3 @@ func (cl *connLRU) remove(pc *persistConn) { func (cl *connLRU) len() int { return len(cl.m) } - -// validPort reports whether p (without the colon) is a valid port in -// a URL, per RFC 3986 Section 3.2.3, which says the port may be -// empty, or only contain digits. -func validPort(p string) bool { - for _, r := range []byte(p) { - if r < '0' || r > '9' { - return false - } - } - return true -}