aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/stack.go
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2020-06-18 12:51:35 -0700
committerKeith Randall <khr@golang.org>2020-06-19 02:11:35 +0000
commit3dec253783e1211989102ac6abd34cddbf8ba0e6 (patch)
tree5cd7c7bfc7210a64b44a50c9ec543db2550bf552 /src/runtime/stack.go
parenta07e28194a05800215efe192d2ff840f339924f0 (diff)
downloadgo-3dec253783e1211989102ac6abd34cddbf8ba0e6.tar.xz
reflect: zero stack slots before writing to them with write barriers
reflect.assignTo writes to the target using write barriers. Make sure that the memory it is writing to is zeroed, so the write barrier does not read pointers from uninitialized memory. Fixes #39541 Change-Id: Ia64b2cacc193bffd0c1396bbce1dfb8182d4905b Reviewed-on: https://go-review.googlesource.com/c/go/+/238760 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/runtime/stack.go')
-rw-r--r--src/runtime/stack.go1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/runtime/stack.go b/src/runtime/stack.go
index 52e54171cb..0e930f60db 100644
--- a/src/runtime/stack.go
+++ b/src/runtime/stack.go
@@ -556,6 +556,7 @@ func adjustpointer(adjinfo *adjustinfo, vpp unsafe.Pointer) {
}
// Information from the compiler about the layout of stack frames.
+// Note: this type must agree with reflect.bitVector.
type bitvector struct {
n int32 // # of bits
bytedata *uint8