]> Cypherpunks repositories - gostls13.git/commitdiff
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)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 5 Oct 2016 16:35:03 +0000 (16:35 +0000)
Always close the file regardless of whether the copy succeeds or fails.
Pass along the close error if the copy succeeds

Fixes #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>

src/mime/multipart/formdata.go

index 8085bd3975b49ad0822362e295f959374bd992db..c9e3188c33aa5b261ae7326f848dc720b29283e7 100644 (file)
@@ -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