summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2010-04-15 16:54:49 +0300
committerAustin Foxley <austinf@cetoncorp.com>2010-04-15 07:30:47 -0700
commit9c9652debbf3f21effb9a119220e747188d590b9 (patch)
tree83d7e78bb7f75f5e5088cc1870d8aa97ef4040ad
parent197d979d307c6d0872a4e6fec1c4e2804ab326df (diff)
nptl: fix libc sigaction signal checking
We should not check for SIGCANCEL in __libc_sigaction because nptl calls this function to setup this signal. Nptl provides it's own override for sigaction that checks that the user cannot override signals nptl uses internally. Linuxthreads does not use SIGCANCEL at all so this affects nptl only. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
-rw-r--r--libc/sysdeps/linux/i386/sigaction.c12
-rw-r--r--libc/sysdeps/linux/x86_64/sigaction.c7
2 files changed, 0 insertions, 19 deletions
diff --git a/libc/sysdeps/linux/i386/sigaction.c b/libc/sysdeps/linux/i386/sigaction.c
index 602f759a4..de0c75ded 100644
--- a/libc/sysdeps/linux/i386/sigaction.c
+++ b/libc/sysdeps/linux/i386/sigaction.c
@@ -41,12 +41,6 @@ int __libc_sigaction(int sig, const struct sigaction *act, struct sigaction *oac
{
struct sigaction kact;
-#ifdef SIGCANCEL
- if (sig == SIGCANCEL) {
- __set_errno(EINVAL);
- return -1;
- }
-#endif
if (act) {
memcpy(&kact, act, sizeof(kact));
kact.sa_flags |= SA_RESTORER;
@@ -69,12 +63,6 @@ int __libc_sigaction(int sig, const struct sigaction *act, struct sigaction *oac
int result;
struct old_kernel_sigaction kact, koact;
-#ifdef SIGCANCEL
- if (sig == SIGCANCEL) {
- __set_errno(EINVAL);
- return -1;
- }
-#endif
if (act) {
kact.k_sa_handler = act->sa_handler;
kact.sa_mask = act->sa_mask.__val[0];
diff --git a/libc/sysdeps/linux/x86_64/sigaction.c b/libc/sysdeps/linux/x86_64/sigaction.c
index d1adbc4be..91df04e9f 100644
--- a/libc/sysdeps/linux/x86_64/sigaction.c
+++ b/libc/sysdeps/linux/x86_64/sigaction.c
@@ -70,13 +70,6 @@ __libc_sigaction(int sig, const struct sigaction *act, struct sigaction *oact)
int result;
struct old_kernel_sigaction kact, koact;
-#ifdef SIGCANCEL
- if (sig == SIGCANCEL) {
- __set_errno(EINVAL);
- return -1;
- }
-#endif
-
if (act) {
kact.k_sa_handler = act->sa_handler;
kact.sa_mask = act->sa_mask.__val[0];