From 90b74ee4e2fb809942ec0c93b315ed9f90e0acdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20Freitas?= Date: Mon, 19 Jan 2015 11:53:21 +0900 Subject: [PATCH] fixed: requireOK should close Body on error --- api/api.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/api/api.go b/api/api.go index 5617293e4..a7753574a 100644 --- a/api/api.go +++ b/api/api.go @@ -339,12 +339,16 @@ func encodeBody(obj interface{}) (io.Reader, error) { // requireOK is used to wrap doRequest and check for a 200 func requireOK(d time.Duration, resp *http.Response, e error) (time.Duration, *http.Response, error) { if e != nil { - return d, resp, e + if resp != nil { + resp.Body.Close() + } + return d, nil, e } if resp.StatusCode != 200 { var buf bytes.Buffer io.Copy(&buf, resp.Body) - return d, resp, fmt.Errorf("Unexpected response code: %d (%s)", resp.StatusCode, buf.Bytes()) + resp.Body.Close() + return d, nil, fmt.Errorf("Unexpected response code: %d (%s)", resp.StatusCode, buf.Bytes()) } - return d, resp, e + return d, resp, nil }