• Dmitriy Vyukov's avatar
    runtime: fix stack split detection around fork · 18950142
    Dmitriy Vyukov authored
    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
    18950142
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
include Loading commit data...
lib Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.hgignore Loading commit data...
.hgtags Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...