diff options
author | Frédéric Guillot <fred@miniflux.net> | 2018-06-19 20:13:13 -0700 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2018-06-19 20:13:13 -0700 |
commit | 7914261437305c3eb2ad2f1c750be91d95af718c (patch) | |
tree | 2ce17d9a10fdd094bbbb3e64b752baca196d7240 /http | |
parent | be95e87e0ecd77023dda4f4cf390703e768c9378 (diff) |
Close HTTP response body even for failed requests
Diffstat (limited to 'http')
-rw-r--r-- | http/client/client.go | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/http/client/client.go b/http/client/client.go index cba55c4..0ec1603 100644 --- a/http/client/client.go +++ b/http/client/client.go @@ -112,6 +112,10 @@ func (c *Client) executeRequest(request *http.Request) (*Response, error) { client := c.buildClient() resp, err := client.Do(request) + if resp != nil { + defer resp.Body.Close() + } + if err != nil { if uerr, ok := err.(*url.Error); ok { switch uerr.Err.(type) { @@ -135,7 +139,6 @@ func (c *Client) executeRequest(request *http.Request) (*Response, error) { return nil, err } - defer resp.Body.Close() if resp.ContentLength > maxBodySize { return nil, fmt.Errorf("client: response too large (%d bytes)", resp.ContentLength) |