diff options
author | Michael Fraenkel <michael.fraenkel@gmail.com> | 2016-10-05 11:27:34 -0400 |
---|---|---|
committer | Chris Broadfoot <cbro@golang.org> | 2016-12-01 19:33:48 +0000 |
commit | f0fa13b346c1be50aae0eb4349a7c09bdc5826fc (patch) | |
tree | ef6296f8130faaf4b0b77415e595ff800c123bf9 | |
parent | da6b9ec7bf1722fa00196e1eadc10a29156b6b28 (diff) | |
download | go-f0fa13b346c1be50aae0eb4349a7c09bdc5826fc.tar.gz go-f0fa13b346c1be50aae0eb4349a7c09bdc5826fc.zip |
[release-branch.go1.6] net/http: multipart ReadForm close file after copy
Always close the file regardless of whether the copy succeeds or fails.
Pass along the close error if the copy succeeds
Updates #16296
Change-Id: Ib394655b91d25750f029f17b3846d985f673fb50
Reviewed-on: https://go-review.googlesource.com/30410
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-on: https://go-review.googlesource.com/33640
Reviewed-by: Chris Broadfoot <cbro@golang.org>
-rw-r--r-- | src/mime/multipart/formdata.go | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mime/multipart/formdata.go b/src/mime/multipart/formdata.go index eee53fc8dd..806b46049e 100644 --- a/src/mime/multipart/formdata.go +++ b/src/mime/multipart/formdata.go @@ -75,8 +75,10 @@ func (r *Reader) ReadForm(maxMemory int64) (f *Form, err error) { if err != nil { return nil, err } - defer file.Close() _, err = io.Copy(file, io.MultiReader(&b, p)) + if cerr := file.Close(); err == nil { + err = cerr + } if err != nil { os.Remove(file.Name()) return nil, err |