aboutsummaryrefslogtreecommitdiff
path: root/src/encoding/gob/decode.go
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2018-01-03 17:50:47 -0800
committerIan Lance Taylor <iant@golang.org>2018-01-04 02:17:33 +0000
commit1a9f27d5034056c1adf53a39939973c4495370f4 (patch)
tree2501c1f7ef23969fa620b5452bb4d07bc45c26db /src/encoding/gob/decode.go
parent43bf63fce1abad1d5fe673e2c869e4d32f62885e (diff)
downloadgo-1a9f27d5034056c1adf53a39939973c4495370f4.tar.gz
go-1a9f27d5034056c1adf53a39939973c4495370f4.zip
encoding/gob: avoid race on idToType
Fixes #23328 Change-Id: Ie4864d7f388d363860318fe41431d8a9719e9a75 Reviewed-on: https://go-review.googlesource.com/86075 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/encoding/gob/decode.go')
-rw-r--r--src/encoding/gob/decode.go2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/encoding/gob/decode.go b/src/encoding/gob/decode.go
index 8dece42e90..2da913fceb 100644
--- a/src/encoding/gob/decode.go
+++ b/src/encoding/gob/decode.go
@@ -1038,6 +1038,8 @@ func (dec *Decoder) compatibleType(fr reflect.Type, fw typeId, inProgress map[re
// typeString returns a human-readable description of the type identified by remoteId.
func (dec *Decoder) typeString(remoteId typeId) string {
+ typeLock.Lock()
+ defer typeLock.Unlock()
if t := idToType[remoteId]; t != nil {
// globally known type.
return t.string()