From: Ian Lance Taylor Date: Wed, 20 Jul 2016 22:40:10 +0000 (-0700) Subject: runtime: add explicit `INT $3` at end of Darwin amd64 sigtramp X-Git-Tag: go1.7rc3~1^2~3 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=ff227b8a56b66e72de744a39f5b68d6e6ce7f3fe;p=gostls13.git runtime: add explicit `INT $3` at end of Darwin amd64 sigtramp The omission of this instruction could confuse the traceback code if a SIGPROF occurred during a signal handler. The traceback code would trace up to sigtramp, but would then get confused because it would see a PC address that did not appear to be in the function. Fixes #16453. Change-Id: I2b3d53e0b272fb01d9c2cb8add22bad879d3eebc Reviewed-on: https://go-review.googlesource.com/25104 Reviewed-by: Josh Bleecher Snyder --- diff --git a/src/runtime/sys_darwin_amd64.s b/src/runtime/sys_darwin_amd64.s index e09b906ba5..e4837ce291 100644 --- a/src/runtime/sys_darwin_amd64.s +++ b/src/runtime/sys_darwin_amd64.s @@ -244,6 +244,7 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$32 MOVQ R8, 24(SP) // ctx MOVQ $runtime·sigtrampgo(SB), AX CALL AX + INT $3 // not reached (see issue 16453) TEXT runtime·mmap(SB),NOSPLIT,$0 MOVQ addr+0(FP), DI // arg 1 addr