diff --git a/common/buf/multi_buffer.go b/common/buf/multi_buffer.go index ca5d5d45..563e3ab3 100644 --- a/common/buf/multi_buffer.go +++ b/common/buf/multi_buffer.go @@ -18,13 +18,16 @@ type MultiBufferReader interface { ReadMultiBuffer() (MultiBuffer, error) } +// ReadAllToMultiBuffer reads all content from the reader into a MultiBuffer, until EOF. func ReadAllToMultiBuffer(reader io.Reader) (MultiBuffer, error) { mb := NewMultiBuffer() for { b := New() - err := b.AppendSupplier(ReadFrom(reader)) - if !b.IsEmpty() { + err := b.Reset(ReadFrom(reader)) + if b.IsEmpty() { + b.Release() + } else { mb.Append(b) } if err != nil {