]> Cypherpunks repositories - gostls13.git/commit
runtime: re-enable TestNewProc0 on android/arm and fix heap corruption
authorShenghou Ma <minux@golang.org>
Wed, 29 Apr 2015 06:42:43 +0000 (02:42 -0400)
committerMinux Ma <minux@golang.org>
Wed, 29 Apr 2015 19:18:07 +0000 (19:18 +0000)
commit4d1ab2d8d10283925e486ad75237ae694f3b6cce
tree7eea7bc186636ddc14520411cb6db1f826dbeeb4
parent06946aad1973c42e26ddb0890c57ef37fecbb48a
runtime: re-enable TestNewProc0 on android/arm and fix heap corruption

The problem is not actually specific to android/arm. Linux/ARM's
runtime.clone set the stack pointer to child_stk-4 before calling
the fn. And then when fn returns, it tries to write to 4(R13) to
provide argument for runtime.exit, which is just beyond the allocated
child stack, and thus it will corrupt the heap randomly or trigger
segfault if that memory happens to be unmapped.

While we're at here, shorten the test polling interval to 0.1s to
speed up the test (it was only checking at 1s interval, which means
the test takes at least 1s).

Fixes #10548.

Change-Id: I57cd63232022b113b6cd61e987b0684ebcce930a
Reviewed-on: https://go-review.googlesource.com/9457
Reviewed-by: David Crawshaw <crawshaw@golang.org>
src/runtime/norace_linux_test.go
src/runtime/sys_linux_arm.s