aboutsummaryrefslogtreecommitdiffhomepage
path: root/http
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2018-06-19 20:13:13 -0700
committerGravatar Frédéric Guillot <fred@miniflux.net>2018-06-19 20:13:13 -0700
commit7914261437305c3eb2ad2f1c750be91d95af718c (patch)
tree2ce17d9a10fdd094bbbb3e64b752baca196d7240 /http
parentbe95e87e0ecd77023dda4f4cf390703e768c9378 (diff)
Close HTTP response body even for failed requests
Diffstat (limited to 'http')
-rw-r--r--http/client/client.go5
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)