[newlib-cygwin] Cygwin: handle_sigprocmask: If new signal set is NULL, ignore "how"
Corinna Vinschen
corinna@sourceware.org
Tue Mar 1 15:24:25 GMT 2022
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=c78f149733899f29f5881e290b4c3cd8c23c11ef
commit c78f149733899f29f5881e290b4c3cd8c23c11ef
Author: Corinna Vinschen <corinna@vinschen.de>
Date: Tue Mar 1 14:09:56 2022 +0100
Cygwin: handle_sigprocmask: If new signal set is NULL, ignore "how"
The "how" value only makes sense if a new set is given. If we
only read the current signal set, ignore the value of "how" per
POSIX:
"If set is a null pointer, the value of the argument how is not
significant"
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
Diff:
---
winsup/cygwin/signal.cc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc
index 2cf750f5c..9b6c2509d 100644
--- a/winsup/cygwin/signal.cc
+++ b/winsup/cygwin/signal.cc
@@ -205,15 +205,15 @@ sigprocmask (int how, const sigset_t *set, sigset_t *oldset)
int __reg3
handle_sigprocmask (int how, const sigset_t *set, sigset_t *oldset, sigset_t& opmask)
{
- /* check that how is in right range */
- if (how != SIG_BLOCK && how != SIG_UNBLOCK && how != SIG_SETMASK)
+ /* check that how is in right range if set is not NULL */
+ if (set && how != SIG_BLOCK && how != SIG_UNBLOCK && how != SIG_SETMASK)
{
syscall_printf ("Invalid how value %d", how);
return EINVAL;
}
__try
- {
+ {
if (oldset)
*oldset = opmask;
More information about the Cygwin-cvs
mailing list