inetd: suppress aliasing warning
function old new delta
sigprocmask2 - 8 +8
wait_for_child_or_signal 213 218 +5
dowait 424 429 +5
block_CHLD_HUP_ALRM 62 59 -3
sigprocmask_SIG_SETMASK 16 - -16
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 2/1 up/down: 18/-19) Total: -1 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/include/libbb.h b/include/libbb.h
index 638c584..daa9672 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -544,8 +544,8 @@
int sigaction_set(int sig, const struct sigaction *act) FAST_FUNC;
/* SIG_BLOCK/SIG_UNBLOCK all signals: */
int sigprocmask_allsigs(int how) FAST_FUNC;
-/* SIG_SETMASK set, and return old set in the same set: */
-int sigprocmask_SIG_SETMASK(sigset_t *set) FAST_FUNC;
+/* Return old set in the same set: */
+int sigprocmask2(int how, sigset_t *set) FAST_FUNC;
/* Standard handler which just records signo */
extern smallint bb_got_signal;
void record_signo(int signo); /* not FAST_FUNC! */
diff --git a/libbb/signals.c b/libbb/signals.c
index 5a1544d..d3d84ef 100644
--- a/libbb/signals.c
+++ b/libbb/signals.c
@@ -31,14 +31,14 @@
return sigprocmask(how, &set, NULL);
}
-int FAST_FUNC sigprocmask_SIG_SETMASK(sigset_t *set)
+int FAST_FUNC sigprocmask2(int how, sigset_t *set)
{
// Grr... gcc 8.1.1:
// "passing argument 3 to restrict-qualified parameter aliases with argument 2"
// dance around that...
sigset_t *oset FIX_ALIASING;
oset = set;
- return sigprocmask(SIG_SETMASK, set, oset);
+ return sigprocmask(how, set, oset);
}
void FAST_FUNC bb_signals(int sigs, void (*f)(int))
diff --git a/networking/inetd.c b/networking/inetd.c
index ca1a972..8f871ee 100644
--- a/networking/inetd.c
+++ b/networking/inetd.c
@@ -488,7 +488,7 @@
sigaddset(m, SIGCHLD);
sigaddset(m, SIGHUP);
sigaddset(m, SIGALRM);
- sigprocmask(SIG_BLOCK, m, m); /* old sigmask is stored in m */
+ sigprocmask2(SIG_BLOCK, m); /* old sigmask is stored in m */
}
static void restore_sigmask(sigset_t *m)
diff --git a/shell/ash.c b/shell/ash.c
index 456aca4..a01c8fa 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -4217,7 +4217,7 @@
/* Children exist, but none are ready. Sleep until interesting signal */
#if 1
sigfillset(&mask);
- sigprocmask_SIG_SETMASK(&mask); /* mask is updated */
+ sigprocmask2(SIG_SETMASK, &mask); /* mask is updated */
while (!got_sigchld && !pending_sig)
sigsuspend(&mask);
sigprocmask(SIG_SETMASK, &mask, NULL);
diff --git a/shell/hush.c b/shell/hush.c
index 5953ceb..2e4a4bc 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -11442,7 +11442,7 @@
* and get stuck in sigsuspend...
*/
sigfillset(&oldset); /* block all signals, remember old set */
- sigprocmask_SIG_SETMASK(&oldset);
+ sigprocmask2(SIG_SETMASK, &oldset);
if (!sigisemptyset(&G.pending_set)) {
/* Crap! we raced with some signal! */