]> Cypherpunks repositories - gostls13.git/commit
go/types,types2: avoid data race to object.color_ through dot imports
authorRob Findley <rfindley@google.com>
Mon, 21 Oct 2024 18:14:24 +0000 (18:14 +0000)
committerGopher Robot <gobot@golang.org>
Mon, 21 Oct 2024 22:38:19 +0000 (22:38 +0000)
commitc6531fae589cf3f9475f3567a5beffb4336fe1d6
tree68dbd91103b8879ef9f423ebba7c01759f73b958
parent067c0915644e5936b9b56eba3b69a0757ad28489
go/types,types2: avoid data race to object.color_ through dot imports

As described in issue #69912, type checking dot-imported identifiers can
result in a call to objDecl on an imported object, which leads to a data
race to the color_ field.

There are multiple potential fixes for this race. Opt for avoiding the
call to objDecl altogether, rather than setting color_ during import.
The color_ field is an internal property of objects that should only be
valid during the type checking of their package. We should not be
calling objDecl on imported objects.

Fixes #69912

Change-Id: I55eb652479715f2a7ac84104db2f448091c4e7ac
Reviewed-on: https://go-review.googlesource.com/c/go/+/621637
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Robert Findley <rfindley@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
src/cmd/compile/internal/importer/gcimporter_test.go
src/cmd/compile/internal/importer/testdata/issue69912.go [new file with mode: 0644]
src/cmd/compile/internal/types2/typexpr.go
src/go/internal/gcimporter/gcimporter_test.go
src/go/internal/gcimporter/testdata/issue69912.go [new file with mode: 0644]
src/go/types/typexpr.go