components/golang-17/patches/0034-release-branch.go1.7-net-http-multipart-ReadForm-clo.patch
author Shawn Walker-Salas <shawn.walker@oracle.com>
Tue, 20 Dec 2016 11:59:29 -0800
changeset 7518 c388d4e1d3ad
permissions -rw-r--r--
PSARC/2016/250 Google Go version 1.7 23170486 update to Google Go version 1.7 and add sparc64 support
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7518
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     1
From fab76f07f54527cd5b0c7243bea96d9d3608582d Mon Sep 17 00:00:00 2001
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     2
From: Michael Fraenkel <[email protected]>
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     3
Date: Wed, 5 Oct 2016 11:27:34 -0400
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     4
Subject: [PATCH 34/38] [release-branch.go1.7] net/http: multipart ReadForm
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     5
 close file after copy
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     6
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     7
Always close the file regardless of whether the copy succeeds or fails.
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     8
Pass along the close error if the copy succeeds
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
     9
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    10
Updates #16296
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    11
Fixes #17965
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    12
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    13
Change-Id: Ib394655b91d25750f029f17b3846d985f673fb50
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    14
Reviewed-on: https://go-review.googlesource.com/30410
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    15
Reviewed-by: Brad Fitzpatrick <[email protected]>
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    16
Run-TryBot: Brad Fitzpatrick <[email protected]>
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    17
TryBot-Result: Gobot Gobot <[email protected]>
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    18
Reviewed-on: https://go-review.googlesource.com/33639
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    19
Reviewed-by: Chris Broadfoot <[email protected]>
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    20
Reviewed-by: Ian Lance Taylor <[email protected]>
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    21
---
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    22
 src/mime/multipart/formdata.go | 4 +++-
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    23
 1 file changed, 3 insertions(+), 1 deletion(-)
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    24
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    25
diff --git a/src/mime/multipart/formdata.go b/src/mime/multipart/formdata.go
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    26
index 8085bd3..c9e3188 100644
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    27
--- a/src/mime/multipart/formdata.go
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    28
+++ b/src/mime/multipart/formdata.go
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    29
@@ -79,8 +79,10 @@ func (r *Reader) readForm(maxMemory int64) (_ *Form, err error) {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    30
 			if err != nil {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    31
 				return nil, err
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    32
 			}
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    33
-			defer file.Close()
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    34
 			_, err = io.Copy(file, io.MultiReader(&b, p))
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    35
+			if cerr := file.Close(); err == nil {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    36
+				err = cerr
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    37
+			}
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    38
 			if err != nil {
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    39
 				os.Remove(file.Name())
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    40
 				return nil, err
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    41
-- 
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    42
2.7.4
c388d4e1d3ad PSARC/2016/250 Google Go version 1.7
Shawn Walker-Salas <shawn.walker@oracle.com>
parents:
diff changeset
    43