From d00890b5f3e7846a7b4ab084fe39d279f21aad04 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Sun, 10 Jul 2016 18:44:09 -0700 Subject: [PATCH] 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 --- src/runtime/traceback.go | 6 ++++++ 1 file changed, 6 insertions(+) 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))) } -- 2.48.1