|
1 From fab76f07f54527cd5b0c7243bea96d9d3608582d Mon Sep 17 00:00:00 2001 |
|
2 From: Michael Fraenkel <[email protected]> |
|
3 Date: Wed, 5 Oct 2016 11:27:34 -0400 |
|
4 Subject: [PATCH 34/38] [release-branch.go1.7] net/http: multipart ReadForm |
|
5 close file after copy |
|
6 |
|
7 Always close the file regardless of whether the copy succeeds or fails. |
|
8 Pass along the close error if the copy succeeds |
|
9 |
|
10 Updates #16296 |
|
11 Fixes #17965 |
|
12 |
|
13 Change-Id: Ib394655b91d25750f029f17b3846d985f673fb50 |
|
14 Reviewed-on: https://go-review.googlesource.com/30410 |
|
15 Reviewed-by: Brad Fitzpatrick <[email protected]> |
|
16 Run-TryBot: Brad Fitzpatrick <[email protected]> |
|
17 TryBot-Result: Gobot Gobot <[email protected]> |
|
18 Reviewed-on: https://go-review.googlesource.com/33639 |
|
19 Reviewed-by: Chris Broadfoot <[email protected]> |
|
20 Reviewed-by: Ian Lance Taylor <[email protected]> |
|
21 --- |
|
22 src/mime/multipart/formdata.go | 4 +++- |
|
23 1 file changed, 3 insertions(+), 1 deletion(-) |
|
24 |
|
25 diff --git a/src/mime/multipart/formdata.go b/src/mime/multipart/formdata.go |
|
26 index 8085bd3..c9e3188 100644 |
|
27 --- a/src/mime/multipart/formdata.go |
|
28 +++ b/src/mime/multipart/formdata.go |
|
29 @@ -79,8 +79,10 @@ func (r *Reader) readForm(maxMemory int64) (_ *Form, err error) { |
|
30 if err != nil { |
|
31 return nil, err |
|
32 } |
|
33 - defer file.Close() |
|
34 _, err = io.Copy(file, io.MultiReader(&b, p)) |
|
35 + if cerr := file.Close(); err == nil { |
|
36 + err = cerr |
|
37 + } |
|
38 if err != nil { |
|
39 os.Remove(file.Name()) |
|
40 return nil, err |
|
41 -- |
|
42 2.7.4 |
|
43 |