]> Cypherpunks repositories - gostls13.git/commit
mime/multipart: don't call Read on io.Reader after an error is seen
authorBrad Fitzpatrick <bradfitz@golang.org>
Mon, 7 Mar 2016 16:35:45 +0000 (08:35 -0800)
committerBrad Fitzpatrick <bradfitz@golang.org>
Mon, 7 Mar 2016 19:50:16 +0000 (19:50 +0000)
commitff555f1159040e644332872c221daa308a7b9b82
treeab06a8a32db02163d53b7ae9968987d9d57c8c75
parentc876a1b11ee8d22b50df2b9b615f8199675f0470
mime/multipart: don't call Read on io.Reader after an error is seen

The io.Reader contract makes no promises about how a Reader should
behave after it returns its first error. Usually the errors are
sticky, but they don't have to be. A regression in zlib.Reader (bug
accidentally relied on sticky errors.

Minimal fix: wrap the user's provided Reader in a Reader which
guarantees stickiness. The minimal fix is less scary than touching
the multipart state machine.

Fixes #14676

Change-Id: I8dd8814b13ae5530824ae0e68529f788974264a5
Reviewed-on: https://go-review.googlesource.com/20297
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/mime/multipart/formdata_test.go
src/mime/multipart/multipart.go