close http response body to avoid potential memory leak

Signed-off-by: Sun Hongliang <allen.sun@daocloud.io>
This commit is contained in:
Sun Hongliang 2016-04-27 11:41:21 +08:00
parent d0bc1833d0
commit b5a74ee875
1 changed files with 7 additions and 2 deletions

View File

@ -988,14 +988,16 @@ func (e *Engine) Pull(image string, authConfig *types.AuthConfig) error {
if err != nil { if err != nil {
return err return err
} }
pullResponse, err := e.apiClient.ImagePull(context.Background(), pullOpts, nil) pullResponseBody, err := e.apiClient.ImagePull(context.Background(), pullOpts, nil)
e.CheckConnectionErr(err) e.CheckConnectionErr(err)
if err != nil { if err != nil {
return err return err
} }
defer pullResponseBody.Close()
// wait until the image download is finished // wait until the image download is finished
dec := json.NewDecoder(pullResponse) dec := json.NewDecoder(pullResponseBody)
m := map[string]interface{}{} m := map[string]interface{}{}
for { for {
if err := dec.Decode(&m); err != nil { if err := dec.Decode(&m); err != nil {
@ -1023,8 +1025,11 @@ func (e *Engine) Load(reader io.Reader) error {
return err return err
} }
defer loadResponse.Body.Close()
// wait until the image load is finished // wait until the image load is finished
dec := json.NewDecoder(loadResponse.Body) dec := json.NewDecoder(loadResponse.Body)
m := map[string]interface{}{} m := map[string]interface{}{}
for { for {
if err := dec.Decode(&m); err != nil { if err := dec.Decode(&m); err != nil {