From ca4d27be5effeb297326ab2220433069d9d6cb1d Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Wed, 25 Mar 2020 19:14:24 -0700 Subject: [PATCH] fix: don't return an empty block at the end --- buzhash.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/buzhash.go b/buzhash.go index b3de95f..83ab019 100644 --- a/buzhash.go +++ b/buzhash.go @@ -40,9 +40,16 @@ func (b *Buzhash) NextBytes() ([]byte, error) { n, err := io.ReadFull(b.r, b.buf[b.n:]) if err != nil { if err == io.ErrUnexpectedEOF || err == io.EOF { - if b.n+n < buzMin { + buffered := b.n + n + if buffered < buzMin { b.err = io.EOF - res := make([]byte, b.n+n) + // Read nothing? Don't return an empty block. + if buffered == 0 { + pool.Put(b.buf) + b.buf = nil + return nil, b.err + } + res := make([]byte, buffered) copy(res, b.buf) pool.Put(b.buf) -- GitLab