From: Ian Lance Taylor Date: Mon, 11 Jul 2016 01:44:09 +0000 (-0700) Subject: runtime: add msan calls before calling traceback functions X-Git-Tag: go1.8beta1~1681 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d00890b5f3e7846a7b4ab084fe39d279f21aad04;p=gostls13.git 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 Reviewed-by: Dmitry Vyukov TryBot-Result: Gobot Gobot --- diff --git a/src/runtime/traceback.go b/src/runtime/traceback.go index 80a54407b3..884c9476fc 100644 --- a/src/runtime/traceback.go +++ b/src/runtime/traceback.go @@ -1077,6 +1077,9 @@ func callCgoSymbolizer(arg *cgoSymbolizerArg) { // or when on the system stack. call = asmcgocall } + if msanenabled { + msanwrite(unsafe.Pointer(arg), unsafe.Sizeof(cgoSymbolizerArg{})) + } call(cgoSymbolizer, noescape(unsafe.Pointer(arg))) } @@ -1096,5 +1099,8 @@ func cgoContextPCs(ctxt uintptr, buf []uintptr) { buf: (*uintptr)(noescape(unsafe.Pointer(&buf[0]))), max: uintptr(len(buf)), } + if msanenabled { + msanwrite(unsafe.Pointer(&arg), unsafe.Sizeof(arg)) + } call(cgoTraceback, noescape(unsafe.Pointer(&arg))) }