]> Cypherpunks repositories - gostls13.git/commit
runtime/msan: use different msan routine for copying
authorkhr@golang.org <khr@golang.org>
Sat, 8 Nov 2025 19:11:10 +0000 (11:11 -0800)
committerGopher Robot <gobot@golang.org>
Mon, 10 Nov 2025 16:07:42 +0000 (08:07 -0800)
commit5f4b5f1a196774e45bc50de0729973119eb7bf07
tree9da08f7fa379c0d67b8b937144440fe2bdafa07c
parent0fe6c8e8c878c44d4466f07ddd0a5b2cd07650c7
runtime/msan: use different msan routine for copying

__msan_memmove records the fact that we're copying memory, and
actually does the copy. Use instead __msan_copy_shadow, which
records the fact that we're copying memory, but doesn't actually
do the copy itself.

We're doing the copy ourselves, so we don't need msan to do it also.

More importantly, msan doing the copy clobbers the target before
we issue the write barrier, which causes pointers to get lost.

Fixes #76138

Change-Id: I17aea739f9444de21fac2bbfd81e48534a39481d
Reviewed-on: https://go-review.googlesource.com/c/go/+/719020
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: t hepudds <thepudds1460@gmail.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@google.com>
Auto-Submit: Keith Randall <khr@golang.org>
Reviewed-by: Radu Berinde <radu@cockroachlabs.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/runtime/msan/msan.go