From f6b05529da995872bab002a358b677ddb56b4aa5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Thu, 9 Apr 2015 08:05:47 -0600 Subject: [PATCH] sigaddset() and sigdelset() need to set errno if a bad signal number is received --- libc/signal/sig_addset.c | 35 ++++++++--------------------------- libc/signal/sig_delset.c | 36 +++++++++--------------------------- libc/signal/sig_emptyset.c | 23 ++--------------------- 3 files changed, 19 insertions(+), 75 deletions(-) diff --git a/libc/signal/sig_addset.c b/libc/signal/sig_addset.c index 3a9da104cc5..1379d3ceb86 100644 --- a/libc/signal/sig_addset.c +++ b/libc/signal/sig_addset.c @@ -38,26 +38,7 @@ ****************************************************************************/ #include - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ +#include /**************************************************************************** * Public Functions @@ -83,18 +64,18 @@ int sigaddset(FAR sigset_t *set, int signo) { - int ret = ERROR; - /* Verify the signal */ - if (GOOD_SIGNO(signo)) + if (!GOOD_SIGNO(signo)) + { + set_errno(EINVAL); + return ERROR; + } + else { /* Add the signal to the set */ *set |= SIGNO2SET(signo); - ret = OK; + return OK; } - - return ret; } - diff --git a/libc/signal/sig_delset.c b/libc/signal/sig_delset.c index 58e17ec1e3d..9c488e70110 100644 --- a/libc/signal/sig_delset.c +++ b/libc/signal/sig_delset.c @@ -38,26 +38,7 @@ ****************************************************************************/ #include - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ +#include /**************************************************************************** * Public Functions @@ -83,18 +64,19 @@ int sigdelset(FAR sigset_t *set, int signo) { - int ret = ERROR; - /* Verify the signal */ - if (GOOD_SIGNO(signo)) + if (!GOOD_SIGNO(signo)) { - /* Delete the signal to the set */ + set_errno(EINVAL); + return ERROR; + } + else + { + /* Remove the signal from the set */ *set &= ~SIGNO2SET(signo); - ret = OK; + return OK; } - - return ret; } diff --git a/libc/signal/sig_emptyset.c b/libc/signal/sig_emptyset.c index 4163fe1560a..c41ae65a4ca 100644 --- a/libc/signal/sig_emptyset.c +++ b/libc/signal/sig_emptyset.c @@ -38,26 +38,7 @@ ****************************************************************************/ #include - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Type Declarations - ****************************************************************************/ - -/**************************************************************************** - * Global Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Variables - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ +#include /**************************************************************************** * Public Functions @@ -71,7 +52,7 @@ * signals are excluded. * * Parameters: - * set - Signal set to initalize + * set - Signal set to initialize * * Return Value: * 0 (OK), or -1 (ERROR) if the signal set cannot be initialized.