]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.6] net/http: multipart ReadForm close file after copy
authorMichael Fraenkel <michael.fraenkel@gmail.com>
Wed, 5 Oct 2016 15:27:34 +0000 (11:27 -0400)
committerChris Broadfoot <cbro@golang.org>
Thu, 1 Dec 2016 19:33:48 +0000 (19:33 +0000)
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>
src/mime/multipart/formdata.go

index eee53fc8dd0574fa376bd38a5c4ecbe7ef76da22..806b46049ecdfa978f3b1fe1288b309442c7ed9f 100644 (file)
@@ -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