[PATCH] signal: Use <sigsetops.h> for sigemptyset, sigfillset

Florian Weimer fw@deneb.enyo.de
Wed Apr 22 08:27:18 GMT 2020


This avoids changing the entire sigset_t structure.  Updating the
actually used part is sufficient.

Tested on x86_64-linux-gnu and i686-linux-gnu.

-----
 signal/sigempty.c   | 7 +++----
 signal/sigfillset.c | 6 ++----
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/signal/sigempty.c b/signal/sigempty.c
index 794e449997..e9f3b571b6 100644
--- a/signal/sigempty.c
+++ b/signal/sigempty.c
@@ -17,20 +17,19 @@
 
 #include <errno.h>
 #include <signal.h>
-#include <string.h>
+#include <sigsetops.h>
 
 /* Clear all signals from SET.  */
 int
 sigemptyset (sigset_t *set)
 {
-  if (set == NULL)
+  if (__glibc_unlikely (set == NULL))
     {
       __set_errno (EINVAL);
       return -1;
     }
 
-  memset (set, 0, sizeof (sigset_t));
-
+  __sigemptyset (set);
   return 0;
 }
 libc_hidden_def (sigemptyset)
diff --git a/signal/sigfillset.c b/signal/sigfillset.c
index 0ca8b6b534..29e98a5864 100644
--- a/signal/sigfillset.c
+++ b/signal/sigfillset.c
@@ -17,8 +17,8 @@
 
 #include <errno.h>
 #include <signal.h>
-#include <string.h>
 #include <internal-signals.h>
+#include <sigsetops.h>
 
 /* Set all signals in SET.  */
 int
@@ -30,10 +30,8 @@ sigfillset (sigset_t *set)
       return -1;
     }
 
-  memset (set, 0xff, sizeof (sigset_t));
-
+  __sigfillset (set);
   __clear_internal_signals (set);
-
   return 0;
 }
 libc_hidden_def (sigfillset)


More information about the Libc-alpha mailing list