From 33d142ca08e1567d19bc0645b172ecffa0b24672 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Tue, 23 Apr 2019 10:26:20 +0200 Subject: [PATCH] Improve buffer management in pipeReader --- clients/go/pipeio/pipeio.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/clients/go/pipeio/pipeio.go b/clients/go/pipeio/pipeio.go index 24bc871..00f32b1 100644 --- a/clients/go/pipeio/pipeio.go +++ b/clients/go/pipeio/pipeio.go @@ -4,6 +4,7 @@ import ( "os" "io" "bufio" + "errors" ) const defaultBufSize = 65536 @@ -54,14 +55,17 @@ func (preader *pipeReader) RecvMessage() []byte { if preader.scanner.Scan() { return preader.scanner.Bytes() } - if err := preader.scanner.Err(); err != io.EOF { + if err := preader.scanner.Err(); err != nil && err != io.EOF { + if err == bufio.ErrTooLong { + err = errors.New("pipeReader buffer too small!") + } panic(err) } return nil } func (preader *pipeReader) BufSize(size int) { - preader.scanner.Buffer(make([]byte, size), size) + preader.scanner.Buffer(make([]byte, defaultBufSize), size) }