Commit d00890b5 authored by Ian Lance Taylor's avatar Ian Lance Taylor

runtime: add msan calls before calling traceback functions

Tell msan that the arguments to the traceback functions are initialized,
in case the traceback functions are compiled with -fsanitize=memory.

Change-Id: I3ab0816604906c6cd7086245e6ae2e7fa62fe354
Reviewed-on: https://go-review.googlesource.com/24856
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: default avatarDmitry Vyukov <dvyukov@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 24158644
...@@ -1077,6 +1077,9 @@ func callCgoSymbolizer(arg *cgoSymbolizerArg) { ...@@ -1077,6 +1077,9 @@ func callCgoSymbolizer(arg *cgoSymbolizerArg) {
// or when on the system stack. // or when on the system stack.
call = asmcgocall call = asmcgocall
} }
if msanenabled {
msanwrite(unsafe.Pointer(arg), unsafe.Sizeof(cgoSymbolizerArg{}))
}
call(cgoSymbolizer, noescape(unsafe.Pointer(arg))) call(cgoSymbolizer, noescape(unsafe.Pointer(arg)))
} }
...@@ -1096,5 +1099,8 @@ func cgoContextPCs(ctxt uintptr, buf []uintptr) { ...@@ -1096,5 +1099,8 @@ func cgoContextPCs(ctxt uintptr, buf []uintptr) {
buf: (*uintptr)(noescape(unsafe.Pointer(&buf[0]))), buf: (*uintptr)(noescape(unsafe.Pointer(&buf[0]))),
max: uintptr(len(buf)), max: uintptr(len(buf)),
} }
if msanenabled {
msanwrite(unsafe.Pointer(&arg), unsafe.Sizeof(arg))
}
call(cgoTraceback, noescape(unsafe.Pointer(&arg))) call(cgoTraceback, noescape(unsafe.Pointer(&arg)))
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment