aboutsummaryrefslogtreecommitdiff
path: root/src/encoding
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2018-10-22 14:17:06 +1100
committerRob Pike <r@golang.org>2018-10-22 05:45:18 +0000
commit3bf9b77c0c8f123728fcfc802599232e9bd95476 (patch)
treef9025497f6b5b60c6d5df1bfcf1e3c63a1f152fc /src/encoding
parent7c2718b12a33180b3f6099e321c25af35c67f6fd (diff)
downloadgo-3bf9b77c0c8f123728fcfc802599232e9bd95476.tar.xz
encoding/gob: increase "tooBig" from 1GB to 8GB on 64-bit machines
A little shift magic makes it easy to adjust the maximum buffer size on machines with larger integers. Fixes #27635 Change-Id: I1f26b07a363fbb9730df2377052475fa88bbb781 Reviewed-on: https://go-review.googlesource.com/c/143678 Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/encoding')
-rw-r--r--src/encoding/gob/decoder.go8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/encoding/gob/decoder.go b/src/encoding/gob/decoder.go
index 5ef0388862..f4f740ef42 100644
--- a/src/encoding/gob/decoder.go
+++ b/src/encoding/gob/decoder.go
@@ -12,10 +12,10 @@ import (
"sync"
)
-// tooBig provides a sanity check for sizes; used in several places.
-// Upper limit of 1GB, allowing room to grow a little without overflow.
-// TODO: make this adjustable?
-const tooBig = 1 << 30
+// tooBig provides a sanity check for sizes; used in several places. Upper limit
+// of is 1GB on 32-bit systems, 8GB on 64-bit, allowing room to grow a little
+// without overflow.
+const tooBig = (1 << 30) << (^uint(0) >> 62)
// A Decoder manages the receipt of type and data information read from the
// remote side of a connection.