1
0
mirror of https://github.com/golang/go synced 2024-10-04 09:21:21 -06:00
go/src/mime
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
..
multipart mime/multipart: fix peekBufferSeparatorIndex edge case 2015-10-09 16:27:43 +00:00
quotedprintable mime/quotedprintable: Return a Reader instead of an io.Reader 2015-04-16 16:18:26 +00:00
testdata
encodedword_test.go mime: move examples to external test file 2015-08-22 18:39:29 +00:00
encodedword.go mime: fix docs for WordDecoder.Decode 2015-09-10 21:50:17 +00:00
example_test.go mime: move examples to external test file 2015-08-22 18:39:29 +00:00
grammar.go all: use "reports whether" in place of "returns true if(f)" 2015-03-18 15:14:06 +00:00
mediatype_test.go
mediatype.go
type_dragonfly.go mime: add mime.types paths for BSDs 2015-06-12 15:51:21 +00:00
type_freebsd.go mime: add mime.types paths for BSDs 2015-06-12 15:51:21 +00:00
type_openbsd.go mime: add mime.types paths for BSDs 2015-06-12 15:51:21 +00:00
type_plan9.go mime: tighten up and simplify tests 2015-03-30 09:12:03 +00:00
type_test.go mime: tighten up and simplify tests 2015-03-30 09:12:03 +00:00
type_unix.go mime: tighten up and simplify tests 2015-03-30 09:12:03 +00:00
type_windows.go mime, time, internal/syscall/windows/registry: use new registry package to simplify code 2015-04-30 04:33:42 +00:00
type.go mime: tighten up and simplify tests 2015-03-30 09:12:03 +00:00