From c2db41258370159c1257ee79df10afa4a2a2d9e8 Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Sun, 18 Jul 2021 23:05:38 -0500 Subject: [PATCH 1/1] opr: Avoid sigwait on SIGWAITING On AIX, calling sigwait() on a sigset containing SIGWAITING (or SIGKILL or SIGSTOP), causes sigwait to return with an EINVAL error. Currently, signalHandler() calls sigwait() with SIGWAITING, because SIGWAITING is in the sigset returned by softsigSignalSet(). And so, sigwait() returns EINVAL, and our opr_Verify in signalHandler() fails, causing a crash. To avoid this, remove SIGWAITING from the sigset in softsigSignalSet(). This is AIX-specific, since the SIGWAITING signal is AIX-specific. Change-Id: I42539d859212605e6b1aaeb6a5eecb0ad034cea5 Reviewed-on: https://gerrit.openafs.org/14705 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk --- src/opr/softsig.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/opr/softsig.c b/src/opr/softsig.c index e3cbd53..0c5a78b 100644 --- a/src/opr/softsig.c +++ b/src/opr/softsig.c @@ -59,6 +59,9 @@ softsigSignalSet(sigset_t *set) sigdelset(set, SIGPIPE); sigdelset(set, SIGSEGV); sigdelset(set, SIGTRAP); +#ifdef AFS_AIX_ENV + sigdelset(set, SIGWAITING); +#endif } static void * -- 1.9.4