aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Fraenkel <michael.fraenkel@gmail.com>2016-10-05 11:27:34 -0400
committerChris Broadfoot <cbro@golang.org>2016-12-01 19:33:48 +0000
commitf0fa13b346c1be50aae0eb4349a7c09bdc5826fc (patch)
treeef6296f8130faaf4b0b77415e595ff800c123bf9
parentda6b9ec7bf1722fa00196e1eadc10a29156b6b28 (diff)
downloadgo-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.go4
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