diff options
| author | Ian Lance Taylor <iant@golang.org> | 2015-07-21 22:34:48 -0700 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2015-07-22 20:26:29 +0000 |
| commit | 872b168fe344914550c29b4f1b0cac9f2e70e7fc (patch) | |
| tree | e877af2c1cd05cbeecc98224b21edb66123879de /src/runtime/sys_linux_amd64.s | |
| parent | 428ed1e3d9e31428b3bf81ed55664a4c34238e4c (diff) | |
| download | go-872b168fe344914550c29b4f1b0cac9f2e70e7fc.tar.xz | |
runtime: if we don't handle a signal on a non-Go thread, raise it
In the past badsignal would crash the program. In
https://golang.org/cl/10757044 badsignal was changed to call sigsend,
to fix issue #3250. The effect of this was that when a non-Go thread
received a signal, and os/signal.Notify was not being used to check
for occurrences of the signal, the signal was ignored.
This changes the code so that if os/signal.Notify is not being used,
then the signal handler is reset to what it was, and the signal is
raised again. This lets non-Go threads handle the signal as they
wish. In particular, it means that a segmentation violation in a
non-Go thread will ordinarily crash the process, as it should.
Fixes #10139.
Update #11794.
Change-Id: I2109444aaada9d963ad03b1d071ec667760515e5
Reviewed-on: https://go-review.googlesource.com/12503
Reviewed-by: Russ Cox <rsc@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/runtime/sys_linux_amd64.s')
| -rw-r--r-- | src/runtime/sys_linux_amd64.s | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/runtime/sys_linux_amd64.s b/src/runtime/sys_linux_amd64.s index 8644a0b5fd..59c21c5b42 100644 --- a/src/runtime/sys_linux_amd64.s +++ b/src/runtime/sys_linux_amd64.s @@ -219,7 +219,7 @@ TEXT runtime·rt_sigaction(SB),NOSPLIT,$0-36 RET TEXT runtime·sigfwd(SB),NOSPLIT,$0-32 - MOVQ sig+8(FP), DI + MOVL sig+8(FP), DI MOVQ info+16(FP), SI MOVQ ctx+24(FP), DX MOVQ fn+0(FP), AX |
