[git commit nptl] nptl: fix libc sigaction signal checking

Timo Teräs timo.teras at iki.fi
Wed Apr 14 17:58:30 UTC 2010


commit: http://git.uclibc.org/uClibc/commit/?id=9c9652debbf3f21effb9a119220e747188d590b9
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/nptl

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 at iki.fi>
Signed-off-by: Austin Foxley <austinf at cetoncorp.com>
---
 libc/sysdeps/linux/i386/sigaction.c   |   12 ------------
 libc/sysdeps/linux/x86_64/sigaction.c |    7 -------
 2 files changed, 0 insertions(+), 19 deletions(-)

diff --git a/libc/sysdeps/linux/i386/sigaction.c b/libc/sysdeps/linux/i386/sigaction.c
index 602f759..de0c75d 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 d1adbc4..91df04e 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];
-- 
1.6.3.3



More information about the uClibc-cvs mailing list