inetd: suppress aliasing warning
authorDenys Vlasenko <vda.linux@googlemail.com>
Sat, 8 Dec 2018 14:35:24 +0000 (15:35 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sat, 8 Dec 2018 14:35:24 +0000 (15:35 +0100)
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>
include/libbb.h
libbb/signals.c
networking/inetd.c
shell/ash.c
shell/hush.c

index 638c58412ce3f8dfe355de61db7231cb118768fc..daa96728b2524744a6d59caf1d504ee6948947b8 100644 (file)
@@ -544,8 +544,8 @@ void sig_unblock(int sig) FAST_FUNC;
 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! */
index 5a1544db711c9d5b16cd35381d670ece617f790b..d3d84ef6a74176f94f84e0e0d9b9389b9f41b6a8 100644 (file)
@@ -31,14 +31,14 @@ int FAST_FUNC sigprocmask_allsigs(int how)
        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))
index ca1a972683be9e2555a909079a6ccde85da8ba5e..8f871ee12e91367126462b52f28f45cd5d5fce1d 100644 (file)
@@ -488,7 +488,7 @@ static void block_CHLD_HUP_ALRM(sigset_t *m)
        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)
index 456aca4f0e58f43cd7f77619517f2702147e6ab8..a01c8fa8b80a3db767bc04309253671b99969749 100644 (file)
@@ -4217,7 +4217,7 @@ wait_block_or_sig(int *status)
                /* 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);
index 5953ceb9fc959b3ab89828fec8cbd9ab4d350c14..2e4a4bcc684d328cbed5d2ee4fc1e760a252b296 100644 (file)
@@ -11442,7 +11442,7 @@ static int wait_for_child_or_signal(struct pipe *waitfor_pipe, pid_t waitfor_pid
                 * 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! */