From: Alex Brainman Date: Thu, 16 May 2013 07:20:13 +0000 (+1000) Subject: os: use small buffer when reading from windows console X-Git-Tag: go1.2rc2~1493 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a65f861bfa7a393e61cbe7aad0d1ecd42a0237be;p=gostls13.git os: use small buffer when reading from windows console Fixes #5481. R=golang-dev, dominik.honnef, bradfitz CC=golang-dev https://golang.org/cl/9437044 --- diff --git a/src/pkg/os/file_windows.go b/src/pkg/os/file_windows.go index 82af756d89..41233fff64 100644 --- a/src/pkg/os/file_windows.go +++ b/src/pkg/os/file_windows.go @@ -251,8 +251,14 @@ func (f *File) readConsole(b []byte) (n int, err error) { return 0, nil } if len(f.readbuf) == 0 { + // syscall.ReadConsole seems to fail, if given large buffer. + // So limit the buffer to 16000 characters. + readN := 16000 + if len(b) < readN { + readN = len(b) + } // get more input data from os - wchars := make([]uint16, len(b)) + wchars := make([]uint16, readN) var p *uint16 if len(b) > 0 { p = &wchars[0]