mirror of
https://github.com/golang/go
synced 2024-09-30 18:28:32 -06:00
runtime: fix stack split detection around fork
If runtime_BeforeFork splits stack, it will unsplit it with spoiled g->stackguard. It leads to check failure in oldstack: fatal error: stackfree: bad fixed size runtime stack: runtime.throw(0xadf3cd) runtime.stackfree(0xc208040480, 0xfffffffffffff9dd, 0x1b00fa8) runtime.oldstack() runtime.lessstack() goroutine 311 [stack unsplit]: syscall.forkAndExecInChild(0xc20802eea0, 0xc208192c00, 0x5, 0x5, 0xc208072a80, ...) syscall.forkExec(0xc20802ed80, 0x54, 0xc2081ccb40, 0x4, 0x4, ...) Fixes #7567. LGTM=iant R=golang-codereviews, iant CC=golang-codereviews, khr, rsc https://golang.org/cl/77340045
This commit is contained in:
parent
cb50277510
commit
1895014257
@ -1696,6 +1696,7 @@ exitsyscall0(G *gp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Called from syscall package before fork.
|
// Called from syscall package before fork.
|
||||||
|
#pragma textflag NOSPLIT
|
||||||
void
|
void
|
||||||
syscall·runtime_BeforeFork(void)
|
syscall·runtime_BeforeFork(void)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user