From 290ec2d92bca6472fdabce51fc331b3bcaa7129d Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Sun, 26 Jan 2025 21:52:58 -0800 Subject: 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 Reviewed-by: Michael Knyszek LUCI-TryBot-Result: Go LUCI Reviewed-by: Keith Randall Auto-Submit: Ian Lance Taylor Reviewed-by: Mauri de Souza Meneguzzo Reviewed-by: Damien Neil --- src/bufio/bufio.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/bufio/bufio.go') 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 { -- cgit v1.3-5-g9baa