diff options
| author | Dmitriy Vyukov <dvyukov@google.com> | 2013-02-21 21:59:46 +0400 |
|---|---|---|
| committer | Dmitriy Vyukov <dvyukov@google.com> | 2013-02-21 21:59:46 +0400 |
| commit | 94fab3cad33b7d5eb7422d319fd88b2db9896a75 (patch) | |
| tree | bf6df42b79a609ae1f042297b0b07d4d0e17e088 /src/pkg | |
| parent | 0cdc0b3b78dcb029bc4951637a0d9be11ee0d7e5 (diff) | |
| download | go-94fab3cad33b7d5eb7422d319fd88b2db9896a75.tar.xz | |
runtime: fix heap corruption
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/7397049
Diffstat (limited to 'src/pkg')
| -rw-r--r-- | src/pkg/runtime/proc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/pkg/runtime/proc.c b/src/pkg/runtime/proc.c index 5c36ddf745..9909182b6b 100644 --- a/src/pkg/runtime/proc.c +++ b/src/pkg/runtime/proc.c @@ -972,6 +972,12 @@ runtime·newextram(void) mp->locked = LockInternal; mp->lockedg = gp; gp->lockedm = mp; + // put on allg for garbage collector + if(runtime·lastg == nil) + runtime·allg = gp; + else + runtime·lastg->alllink = gp; + runtime·lastg = gp; schedunlock(); // Add m to the extra list. |
