Patch by Vasilis Kaoutsis: Check for a valid signal number before
doing something. If the signal is not valid, set errno and return -1. Mini style changes by myself. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22728 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -7,8 +7,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|
||||||
#include <syscalls.h>
|
#include <syscalls.h>
|
||||||
|
|
||||||
|
|
||||||
@@ -31,7 +31,14 @@ sigfillset(sigset_t *set)
|
|||||||
int
|
int
|
||||||
sigismember(const sigset_t *set, int sig)
|
sigismember(const sigset_t *set, int sig)
|
||||||
{
|
{
|
||||||
sigset_t mask = (((sigset_t) 1) << (( sig ) - 1)) ;
|
sigset_t mask;
|
||||||
|
|
||||||
|
if (sig <= 0 || sig >= NSIG) {
|
||||||
|
errno = EINVAL;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
mask = (((sigset_t)1) << (sig - 1)) ;
|
||||||
return (*set & mask) ? 1 : 0 ;
|
return (*set & mask) ? 1 : 0 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -39,7 +46,14 @@ sigismember(const sigset_t *set, int sig)
|
|||||||
int
|
int
|
||||||
sigaddset(sigset_t *set, int sig)
|
sigaddset(sigset_t *set, int sig)
|
||||||
{
|
{
|
||||||
sigset_t mask = (((sigset_t) 1) << (( sig ) - 1)) ;
|
sigset_t mask;
|
||||||
|
|
||||||
|
if (sig <= 0 || sig >= NSIG) {
|
||||||
|
errno = EINVAL;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
mask = (((sigset_t)1) << (sig - 1)) ;
|
||||||
*set |= mask;
|
*set |= mask;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -48,8 +62,14 @@ sigaddset(sigset_t *set, int sig)
|
|||||||
int
|
int
|
||||||
sigdelset(sigset_t *set, int sig)
|
sigdelset(sigset_t *set, int sig)
|
||||||
{
|
{
|
||||||
sigset_t mask = (((sigset_t) 1) << (( sig ) - 1)) ;
|
sigset_t mask;
|
||||||
|
|
||||||
|
if (sig <= 0 || sig >= NSIG) {
|
||||||
|
errno = EINVAL;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
mask = (((sigset_t)1) << (sig - 1)) ;
|
||||||
*set &= ~mask;
|
*set &= ~mask;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user