[3/7] Fix return code for __libc_signal_* functions
Commit Message
since the function should not fail if input argument is NULL. Also,
for Linux the return value is not fully correct on some platforms due
the missing usage of INTERNAL_SYSCALL_ERROR_P / INTERNAL_SYSCALL_ERRNO
macros.
Checked on x86_64-linux-gnu, i686-linux-gnu, and sparc64-linux-gnu.
---
sysdeps/generic/internal-signals.h | 12 ++++++------
sysdeps/unix/sysv/linux/internal-signals.h | 18 +++++++++---------
2 files changed, 15 insertions(+), 15 deletions(-)
@@ -34,28 +34,28 @@ __clear_internal_signals (sigset_t *set)
{
}
-static inline int
+static inline void
__libc_signal_block_all (sigset_t *set)
{
sigset_t allset;
__sigfillset (&allset);
- return __sigprocmask (SIG_BLOCK, &allset, set);
+ __sigprocmask (SIG_BLOCK, &allset, set);
}
-static inline int
+static inline void
__libc_signal_block_app (sigset_t *set)
{
sigset_t allset;
__sigfillset (&allset);
__clear_internal_signals (&allset);
- return __sigprocmask (SIG_BLOCK, &allset, set);
+ __sigprocmask (SIG_BLOCK, &allset, set);
}
/* Restore current process signal mask. */
-static inline int
+static inline void
__libc_signal_restore_set (const sigset_t *set)
{
- return __sigprocmask (SIG_SETMASK, set, NULL);
+ __sigprocmask (SIG_SETMASK, set, NULL);
}
@@ -71,30 +71,30 @@ static const sigset_t sigapp_set = {
};
/* Block all signals, including internal glibc ones. */
-static inline int
+static inline void
__libc_signal_block_all (sigset_t *set)
{
INTERNAL_SYSCALL_DECL (err);
- return INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_BLOCK, &sigall_set,
- set, _NSIG / 8);
+ INTERNAL_SYSCALL_CALL (rt_sigprocmask, err, SIG_BLOCK, &sigall_set, set,
+ _NSIG / 8);
}
/* Block all application signals (excluding internal glibc ones). */
-static inline int
+static inline void
__libc_signal_block_app (sigset_t *set)
{
INTERNAL_SYSCALL_DECL (err);
- return INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_BLOCK, &sigapp_set,
- set, _NSIG / 8);
+ INTERNAL_SYSCALL_CALL (rt_sigprocmask, err, SIG_BLOCK, &sigapp_set, set,
+ _NSIG / 8);
}
/* Restore current process signal mask. */
-static inline int
+static inline void
__libc_signal_restore_set (const sigset_t *set)
{
INTERNAL_SYSCALL_DECL (err);
- return INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, set, NULL,
- _NSIG / 8);
+ INTERNAL_SYSCALL_CALL (rt_sigprocmask, err, SIG_SETMASK, set, NULL,
+ _NSIG / 8);
}
/* Used to communicate with signal handler. */