1
0
mirror of https://github.com/golang/go synced 2024-11-24 22:37:56 -07:00
go/src/mime/multipart
mpl 821b54921a mime/multipart: fix peekBufferSeparatorIndex edge case
The case fixed by this change happens when, in func (pr partReader)
Read, the Peek happens to read so that peek looks like:

  "somedata\r\n--Boundary\r"

peekBufferSeparatorIndex was returning (-1, false) because it didn't
find the trailing '\n'.

This was wrong because:

1) It didn't match the documentation: as "\r\n--Boundary" was found, it
should return the index of that pattern, not -1.

2) It lead to an nCopy cut such as:
  "somedata\r| |\n--Boundary\r" instead of "somedata| |\r\n--Boundary\r"
which made the subsequent Read miss the boundary, and eventually end
with a "return 0, io.ErrUnexpectedEOF" case, as reported in:

https://github.com/camlistore/camlistore/issues/642

Change-Id: I1ba78a741bc0c7719e160add9cca932d10f8a615
Reviewed-on: https://go-review.googlesource.com/15269
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
2015-10-09 16:27:43 +00:00
..
testdata
example_test.go
formdata_test.go
formdata.go
multipart_test.go mime/multipart: fix peekBufferSeparatorIndex edge case 2015-10-09 16:27:43 +00:00
multipart.go mime/multipart: fix peekBufferSeparatorIndex edge case 2015-10-09 16:27:43 +00:00
writer_test.go
writer.go all: cleanup usage of dashes in package documentation 2015-07-28 02:44:41 +00:00