From 7914261437305c3eb2ad2f1c750be91d95af718c Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Tue, 19 Jun 2018 20:13:13 -0700 Subject: Close HTTP response body even for failed requests --- http/client/client.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'http') 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) -- cgit v1.2.3