mirror of
https://github.com/golang/go
synced 2024-11-18 10:04:43 -07:00
runtime: fix stack corruption in race mode
MOVQ RARG0, 0(SP) smashes exactly what was saved by PUSHQ R15. This code managed to work somehow with the current race runtime, but corrupts caller arguments with new race runtime that I am testing. Change-Id: I9ffe8b5eee86451db36e99dbf4d11f320192e576 Reviewed-on: https://go-review.googlesource.com/4810 Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
parent
6731063e42
commit
f59f9b8527
@ -383,8 +383,9 @@ TEXT runtime·racesymbolizethunk(SB), NOSPLIT, $56-8
|
||||
MOVQ g_m(R13), R13
|
||||
MOVQ m_g0(R13), R14
|
||||
MOVQ R14, g(R12) // g = m->g0
|
||||
MOVQ RARG0, 0(SP) // func arg
|
||||
PUSHQ RARG0 // func arg
|
||||
CALL runtime·racesymbolize(SB)
|
||||
POPQ R12
|
||||
// All registers are smashed after Go code, reload.
|
||||
get_tls(R12)
|
||||
MOVQ g(R12), R13
|
||||
|
Loading…
Reference in New Issue
Block a user