From 3bf9b77c0c8f123728fcfc802599232e9bd95476 Mon Sep 17 00:00:00 2001 From: Rob Pike Date: Mon, 22 Oct 2018 14:17:06 +1100 Subject: [PATCH] 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 TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor --- src/encoding/gob/decoder.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/encoding/gob/decoder.go b/src/encoding/gob/decoder.go index 5ef03888621..f4f740ef422 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.