mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
linux: fix sigaltstack on amd64
To determine whether to use alternate signal stack or not,
we need to use the native signal number, not the one translated
with bsd_to_linux_signal().
In practical terms, this fixes golang.
Reviewed By: dchagin
Fixes: 135dd0cab5
Sponsored By: EPSRC
Differential Revision: https://reviews.freebsd.org/D31298
This commit is contained in:
parent
ccc510b463
commit
b54838003c
1 changed files with 3 additions and 3 deletions
|
|
@ -630,9 +630,6 @@ linux_rt_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
|
|||
LINUX_CTR4(rt_sendsig, "%p, %d, %p, %u",
|
||||
catcher, sig, mask, code);
|
||||
|
||||
/* Translate the signal. */
|
||||
sig = bsd_to_linux_signal(sig);
|
||||
|
||||
/* Save user context. */
|
||||
bzero(&sf, sizeof(sf));
|
||||
bsd_to_linux_sigset(mask, &sf.sf_sc.uc_sigmask);
|
||||
|
|
@ -676,6 +673,9 @@ linux_rt_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
|
|||
/* Align to 16 bytes. */
|
||||
sfp = (struct l_rt_sigframe *)((unsigned long)sp & ~0xFul);
|
||||
|
||||
/* Translate the signal. */
|
||||
sig = bsd_to_linux_signal(sig);
|
||||
|
||||
/* Build the argument list for the signal handler. */
|
||||
regs->tf_rdi = sig; /* arg 1 in %rdi */
|
||||
regs->tf_rax = 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue