]> Cypherpunks repositories - gostls13.git/commitdiff
http: avoid panic caused by nil URL
authorAnthony Martin <ality@pbrane.org>
Sat, 15 Oct 2011 00:09:38 +0000 (17:09 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Sat, 15 Oct 2011 00:09:38 +0000 (17:09 -0700)
The current code will panic if an invalid
request (one with a nil URL) is passed to
the doFollowingRedirects function.

Also, remove a redundant nil Header check.

R=bradfitz
CC=golang-dev
https://golang.org/cl/5270046

src/pkg/http/client.go

index bce9014c4bfb18fa98262dc7f0944b7b20e5c2ea..3fa4a056ad85ced2c628a46bab1e0a67ef8040f8 100644 (file)
@@ -115,9 +115,6 @@ func send(req *Request, t RoundTripper) (resp *Response, err os.Error) {
 
        info := req.URL.RawUserinfo
        if len(info) > 0 {
-               if req.Header == nil {
-                       req.Header = make(Header)
-               }
                req.Header.Set("Authorization", "Basic "+base64.URLEncoding.EncodeToString([]byte(info)))
        }
        return t.RoundTrip(req)
@@ -176,6 +173,10 @@ func (c *Client) doFollowingRedirects(ireq *Request) (r *Response, err os.Error)
        }
        var via []*Request
 
+       if ireq.URL == nil {
+               return nil, os.NewError("http: nil Request.URL")
+       }
+
        req := ireq
        urlStr := "" // next relative or absolute URL to fetch (after first request)
        for redirect := 0; ; redirect++ {