mailing list of musl libc
 help / color / mirror / code / Atom feed
* [PATCH] pthread_sigmask: check 'how' only when 'set' is not NULL
@ 2017-03-22 12:19 Yousong Zhou
  2017-03-22 12:49 ` Rich Felker
  0 siblings, 1 reply; 3+ messages in thread
From: Yousong Zhou @ 2017-03-22 12:19 UTC (permalink / raw)
  To: dalias; +Cc: musl, Yousong Zhou

According to POSIX document

    If set is a null pointer, the value of the argument how is not
    significant and the thread's signal mask shall be unchanged; thus
    the call can be used to enquire about currently blocked signals.

This is also how the current Linux kernel syscall is doing.  So the
following function call from binutils-gdb should not fail

    sigprocmask (0,  NULL, &original_signal_mask);
---
 src/thread/pthread_sigmask.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/thread/pthread_sigmask.c b/src/thread/pthread_sigmask.c
index 88c333f..f188782 100644
--- a/src/thread/pthread_sigmask.c
+++ b/src/thread/pthread_sigmask.c
@@ -5,7 +5,7 @@
 int pthread_sigmask(int how, const sigset_t *restrict set, sigset_t *restrict old)
 {
 	int ret;
-	if ((unsigned)how - SIG_BLOCK > 2U) return EINVAL;
+	if (set && (unsigned)how - SIG_BLOCK > 2U) return EINVAL;
 	ret = -__syscall(SYS_rt_sigprocmask, how, set, old, _NSIG/8);
 	if (!ret && old) {
 		if (sizeof old->__bits[0] == 8) {
-- 
2.6.4



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-03-24  2:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-22 12:19 [PATCH] pthread_sigmask: check 'how' only when 'set' is not NULL Yousong Zhou
2017-03-22 12:49 ` Rich Felker
2017-03-24  2:14   ` Yousong Zhou

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).