Skip to content

Commit b1e9a5e

Browse files
committed
Merge pull request moby#21258 from runcom/res.body.leaks
*: fix response body leaks
2 parents 4227119 + f0d83c4 commit b1e9a5e

File tree

5 files changed

+4
-4
lines changed

5 files changed

+4
-4
lines changed

api/client/build.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
236236
if err != nil {
237237
return err
238238
}
239+
defer response.Body.Close()
239240

240241
err = jsonmessage.DisplayJSONMessagesStream(response.Body, buildBuff, cli.outFd, cli.isTerminalOut, nil)
241242
if err != nil {

daemon/graphdriver/proxy.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,6 @@ func (d *graphDriverProxy) Diff(id, parent string) (archive.Archive, error) {
161161
}
162162
body, err := d.client.Stream("GraphDriver.Diff", args)
163163
if err != nil {
164-
body.Close()
165164
return nil, err
166165
}
167166
return archive.Archive(body), nil

daemon/logger/splunk/splunk.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,7 @@ func (l *splunkLogger) Log(msg *logger.Message) error {
174174
if err != nil {
175175
return err
176176
}
177-
if res.Body != nil {
178-
defer res.Body.Close()
179-
}
177+
defer res.Body.Close()
180178
if res.StatusCode != http.StatusOK {
181179
var body []byte
182180
body, err = ioutil.ReadAll(res.Body)

pkg/plugins/client.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ func (c *Client) SendFile(serviceMethod string, data io.Reader, ret interface{})
101101
if err != nil {
102102
return err
103103
}
104+
defer body.Close()
104105
if err := json.NewDecoder(body).Decode(&ret); err != nil {
105106
logrus.Errorf("%s: error reading plugin resp: %v", serviceMethod, err)
106107
return err

registry/session.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ func (r *Session) GetRemoteImageLayer(imgID, registry string, imgSize int64) (io
284284
res, err = r.client.Do(req)
285285
if err != nil {
286286
logrus.Debugf("Error contacting registry %s: %v", registry, err)
287+
// the only case err != nil && res != nil is https://golang.org/src/net/http/client.go#L515
287288
if res != nil {
288289
if res.Body != nil {
289290
res.Body.Close()

0 commit comments

Comments
 (0)