From 7cd2d62d06b64c892662d9751cfb9031eacc0801 Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Tue, 7 Nov 2017 16:53:02 +0100 Subject: [PATCH] release buffer on error --- common/buf/multi_buffer.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/common/buf/multi_buffer.go b/common/buf/multi_buffer.go index ca5d5d45c..563e3ab3e 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 {