diff options
| author | Russ Cox <rsc@golang.org> | 2014-03-04 13:53:08 -0500 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2014-03-04 13:53:08 -0500 |
| commit | c2dd33a46f66b2b56987ff9849f64513a4323385 (patch) | |
| tree | 2db01bc131ad58e629cb6c9687f0b5df7fb63203 /include | |
| parent | 542415c9df03e40a99ef9eb1005e43ba2cadc46a (diff) | |
| download | go-c2dd33a46f66b2b56987ff9849f64513a4323385.tar.xz | |
cmd/ld: clear unused ctxt before morestack
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
Diffstat (limited to 'include')
| -rw-r--r-- | include/link.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/link.h b/include/link.h index 53c5c55822..a762424d22 100644 --- a/include/link.h +++ b/include/link.h @@ -356,7 +356,7 @@ struct Link LSym* sym_divu; LSym* sym_mod; LSym* sym_modu; - LSym* symmorestack[10]; + LSym* symmorestack[20]; LSym* gmsym; LSym* plan9tos; Prog* curp; |
