mirror of
https://github.com/golang/go
synced 2024-11-23 05:50:05 -07:00
runtime: call msanwrite on object passed to runtime/cgo
Avoids an msan error when runtime/cgo is explicitly rebuilt with -fsanitize=memory. Fixes #13815. Change-Id: I70308034011fb308b63585bcd40b0d1e62ec93ef Reviewed-on: https://go-review.googlesource.com/18263 Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
17ce03725c
commit
934e055f41
@ -61,7 +61,12 @@ if ! go run -msan msan.go; then
|
||||
status=1
|
||||
fi
|
||||
|
||||
if ! go run -msan msan2.go; then
|
||||
if ! CGO_LDFLAGS="-fsanitize=memory" CGO_CPPFLAGS="-fsanitize=memory" go run -msan -a msan2.go; then
|
||||
echo "FAIL: msan2 with -fsanitize=memory"
|
||||
status=1
|
||||
fi
|
||||
|
||||
if ! go run -msan -a msan2.go; then
|
||||
echo "FAIL: msan2"
|
||||
status=1
|
||||
fi
|
||||
|
@ -1489,6 +1489,9 @@ func newm(fn func(), _p_ *p) {
|
||||
ts.g.set(mp.g0)
|
||||
ts.tls = (*uint64)(unsafe.Pointer(&mp.tls[0]))
|
||||
ts.fn = unsafe.Pointer(funcPC(mstart))
|
||||
if msanenabled {
|
||||
msanwrite(unsafe.Pointer(&ts), unsafe.Sizeof(ts))
|
||||
}
|
||||
asmcgocall(_cgo_thread_start, unsafe.Pointer(&ts))
|
||||
return
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user