• Russ Cox's avatar
    cmd/ld: clear unused ctxt before morestack · c2dd33a4
    Russ Cox authored
    For non-closure functions, the context register is uninitialized
    on entry and will not be used, but morestack saves it and then the
    garbage collector treats it as live. This can be a source of memory
    leaks if the context register points at otherwise dead memory.
    Avoid this by introducing a parallel set of morestack functions
    that clear the context register, and use those for the non-closure functions.
    
    I hope this will help with some of the finalizer flakiness, but it probably won't.
    
    Fixes #7244.
    
    LGTM=dvyukov
    R=khr, dvyukov
    CC=golang-codereviews
    https://golang.org/cl/71030044
    c2dd33a4
asm_amd64.s 31.3 KB