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:25 +0000 |
commit | fab76f07f54527cd5b0c7243bea96d9d3608582d (patch) | |
tree | 2509b49d444e24741eaf2014bed94bd7ce1dc80a | |
parent | 4f7363cd723d3c79081d3a201279f4e024620db9 (diff) | |
download | go-fab76f07f54527cd5b0c7243bea96d9d3608582d.tar.gz go-fab76f07f54527cd5b0c7243bea96d9d3608582d.zip |
[release-branch.go1.7] 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
Fixes #17965
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/33639
Reviewed-by: Chris Broadfoot <cbro@golang.org>
Reviewed-by: Ian Lance Taylor <iant@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 8085bd3975..c9e3188c33 100644 --- a/src/mime/multipart/formdata.go +++ b/src/mime/multipart/formdata.go @@ -79,8 +79,10 @@ func (r *Reader) readForm(maxMemory int64) (_ *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 |