diff --git a/buzhash.go b/buzhash.go index b3de95f127507350a5e30f9341297a554c2f6cbc..83ab019dd48c257e9eb2199a56514646209f838e 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)