]> Cypherpunks repositories - gostls13.git/commitdiff
os: read only 10,000 bytes at a time from Windows console
authorRuss Cox <rsc@golang.org>
Fri, 8 Jan 2016 16:23:25 +0000 (11:23 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 8 Jan 2016 16:52:37 +0000 (16:52 +0000)
Reading 32,767 is too many on some versions of Windows.
The exact upper bound is unclear.

For #13697, but may not fix the problem on all systems.

Change-Id: I197021ed60cbcd33c91ca6ceed456ec3d5a6c9d6
Reviewed-on: https://go-review.googlesource.com/18433
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/os/file_windows.go

index 9b0458552c28dd1c3d15951a9dc18f92d99691b9..aa8c05c4ff824ef6fe252f9c87d2c9f218be516f 100644 (file)
@@ -265,8 +265,10 @@ func (f *File) readConsole(b []byte) (n int, err error) {
        if len(f.readbuf) == 0 {
                numBytes := len(b)
                // Windows  can't read bytes over max of int16.
-               if numBytes > 32767 {
-                       numBytes = 32767
+               // Some versions of Windows can read even less.
+               // See golang.org/issue/13697.
+               if numBytes > 10000 {
+                       numBytes = 10000
                }
                mbytes := make([]byte, numBytes)
                var nmb uint32