summaryrefslogtreecommitdiff
path: root/sys/compat/linux32
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2018-01-07 21:16:00 +0000
committerchristos <christos@NetBSD.org>2018-01-07 21:16:00 +0000
commit4f35d46d40ddf52ac9078dfd5645352070b152c2 (patch)
treeb3ba9e27c3c996f58106c7e2d028b9c2572eced8 /sys/compat/linux32
parent74a4b85d23914c4e51d4c6beff3d0a9f3147ca4e (diff)
ignore signal 64 for now (go uses it)
XXX: pullup-8
Diffstat (limited to 'sys/compat/linux32')
-rw-r--r--sys/compat/linux32/common/linux32_signal.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/sys/compat/linux32/common/linux32_signal.c b/sys/compat/linux32/common/linux32_signal.c
index 53704ad85cf..557d53d10a6 100644
--- a/sys/compat/linux32/common/linux32_signal.c
+++ b/sys/compat/linux32/common/linux32_signal.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux32_signal.c,v 1.18 2015/03/08 17:10:44 christos Exp $ */
+/* $NetBSD: linux32_signal.c,v 1.19 2018/01/07 21:16:00 christos Exp $ */
/*-
* Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_signal.c,v 1.18 2015/03/08 17:10:44 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_signal.c,v 1.19 2018/01/07 21:16:00 christos Exp $");
#include <sys/param.h>
#include <sys/ucred.h>
@@ -299,6 +299,15 @@ linux32_sys_rt_sigaction(struct lwp *l, const struct linux32_sys_rt_sigaction_ar
}
sig = SCARG(uap, signum);
+ /*
+ * XXX: Linux has 33 realtime signals, the go binary wants to
+ * reset all of them; nothing else uses the last RT signal, so for
+ * now ignore it.
+ */
+ if (sig == LINUX__NSIG) {
+ uprintf("%s: setting signal %d ignored\n", __func__, sig);
+ sig--; /* back to 63 which is ignored */
+ }
if (sig < 0 || sig >= LINUX32__NSIG) {
DPRINTF(("rt_sigaction: Bad signal number %d %d\n",
sig, LINUX32__NSIG));