diff --git a/read/read.go b/read/read.go index f1e81cc..336c4d2 100644 --- a/read/read.go +++ b/read/read.go @@ -157,12 +157,16 @@ func (buf *Buffer) fill(minBytes int) { } buf.grow(minBytes) - n, err := buf.bufio.Read(buf.buffer[bufLen:cap(buf.buffer)]) - buf.buffer = buf.buffer[:bufLen+n] + for bufLen < minBytes { + n, err := buf.bufio.Read(buf.buffer[bufLen:cap(buf.buffer)]) + bufLen += n + buf.buffer = buf.buffer[:bufLen] - if err != nil { - buf.err = err - buf.errOffset = bufLen + n + if err != nil { + buf.err = err + buf.errOffset = bufLen + break + } } }