From: Russ Allbery Date: Mon, 22 Mar 2010 19:56:09 +0000 (-0700) Subject: Use sigset_t and sigfillset instead of memset X-Git-Tag: openafs-devel-1_5_73~29 X-Git-Url: http://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=162cf1c51d167c43da49539c3956f5b94ba3c5e3 Use sigset_t and sigfillset instead of memset Rather than using an arbitrary array memset to ones as our signal mask, use the POSIX sigfillset function and eliminate the static variable. Fixes strict aliasing errors with --enable-checking and gcc 4.4.3 on Linux x86. Change-Id: Ic3e0499d03657d94f60808ed12e090dc62cce6fc Reviewed-on: http://gerrit.openafs.org/1616 Tested-by: Russ Allbery Reviewed-by: Andrew Deason Reviewed-by: Marc Dionne Tested-by: Marc Dionne Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- diff --git a/src/lwp/iomgr.c b/src/lwp/iomgr.c index 3181e6b..7579813 100644 --- a/src/lwp/iomgr.c +++ b/src/lwp/iomgr.c @@ -746,8 +746,6 @@ int IOMGR_SoftSig(void *(*aproc)(void *), void *arock) } -unsigned char allOnes[100]; - int IOMGR_Initialize(void) { PROCESS pid; @@ -766,7 +764,6 @@ int IOMGR_Initialize(void) sigsHandled = 0; anySigsDelivered = TRUE; /* A soft signal may have happened before IOMGR_Initialize: so force a check for signals regardless */ - memset(allOnes, 0xff, sizeof(allOnes)); return LWP_CreateProcess(IOMGR, AFS_LWP_MINSTACKSIZE, 0, (void *) 0, "IO MANAGER", &IOMGR_Id); @@ -993,7 +990,7 @@ int IOMGR_Signal (int signo, char *event) if (event == NULL) return LWP_EBADEVENT; sa.sa_handler = SigHandler; - sa.sa_mask = *((sigset_t *) allOnes); /* mask all signals */ + sigfillset(&sa.sa_mask); /* mask all signals */ sa.sa_flags = 0; sigsHandled |= mysigmask(signo); sigEvents[signo] = event;