diff options
| author | Ian Lance Taylor <iant@golang.org> | 2025-01-26 21:52:58 -0800 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2025-02-06 17:08:54 -0800 |
| commit | 290ec2d92bca6472fdabce51fc331b3bcaa7129d (patch) | |
| tree | 521de9734127e3ce5cae85a6931562054132a8eb /src/bufio/bufio.go | |
| parent | 7c6b047ea14dcc6aa948f901956511c4e8691abf (diff) | |
| download | go-290ec2d92bca6472fdabce51fc331b3bcaa7129d.tar.xz | |
bufio: don't do empty Write at start of WriteTo
The empty Write will cause the wrong thing to happen when using
io.Copy to copy to a package-based stream.
Fixes #71424
Change-Id: I046a27539447182692ac76a8bdd422327345dd8d
Reviewed-on: https://go-review.googlesource.com/c/go/+/644535
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@google.com>
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Mauri de Souza Meneguzzo <mauri870@gmail.com>
Reviewed-by: Damien Neil <dneil@google.com>
Diffstat (limited to 'src/bufio/bufio.go')
| -rw-r--r-- | src/bufio/bufio.go | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/bufio/bufio.go b/src/bufio/bufio.go index d589701e19..5244ce2e0c 100644 --- a/src/bufio/bufio.go +++ b/src/bufio/bufio.go @@ -519,9 +519,11 @@ func (b *Reader) WriteTo(w io.Writer) (n int64, err error) { b.lastByte = -1 b.lastRuneSize = -1 - n, err = b.writeBuf(w) - if err != nil { - return + if b.r < b.w { + n, err = b.writeBuf(w) + if err != nil { + return + } } if r, ok := b.rd.(io.WriterTo); ok { |
