diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-12-08 15:35:24 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-12-08 15:35:24 +0100 |
commit | b437df1157964ed012f1aeae25b68f6bbaae1787 (patch) | |
tree | de5ff5875f1d527ad2e701039477303a4e41430c | |
parent | 136fe9bede247d3273f5e82b5e856fa5c15a922c (diff) | |
download | busybox-w32-b437df1157964ed012f1aeae25b68f6bbaae1787.tar.gz busybox-w32-b437df1157964ed012f1aeae25b68f6bbaae1787.tar.bz2 busybox-w32-b437df1157964ed012f1aeae25b68f6bbaae1787.zip |
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>
-rw-r--r-- | include/libbb.h | 4 | ||||
-rw-r--r-- | libbb/signals.c | 4 | ||||
-rw-r--r-- | networking/inetd.c | 2 | ||||
-rw-r--r-- | shell/ash.c | 2 | ||||
-rw-r--r-- | shell/hush.c | 2 |
5 files changed, 7 insertions, 7 deletions
diff --git a/include/libbb.h b/include/libbb.h index 638c58412..daa96728b 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
@@ -544,8 +544,8 @@ void sig_unblock(int sig) FAST_FUNC; | |||
544 | int sigaction_set(int sig, const struct sigaction *act) FAST_FUNC; | 544 | int sigaction_set(int sig, const struct sigaction *act) FAST_FUNC; |
545 | /* SIG_BLOCK/SIG_UNBLOCK all signals: */ | 545 | /* SIG_BLOCK/SIG_UNBLOCK all signals: */ |
546 | int sigprocmask_allsigs(int how) FAST_FUNC; | 546 | int sigprocmask_allsigs(int how) FAST_FUNC; |
547 | /* SIG_SETMASK set, and return old set in the same set: */ | 547 | /* Return old set in the same set: */ |
548 | int sigprocmask_SIG_SETMASK(sigset_t *set) FAST_FUNC; | 548 | int sigprocmask2(int how, sigset_t *set) FAST_FUNC; |
549 | /* Standard handler which just records signo */ | 549 | /* Standard handler which just records signo */ |
550 | extern smallint bb_got_signal; | 550 | extern smallint bb_got_signal; |
551 | void record_signo(int signo); /* not FAST_FUNC! */ | 551 | void record_signo(int signo); /* not FAST_FUNC! */ |
diff --git a/libbb/signals.c b/libbb/signals.c index 5a1544db7..d3d84ef6a 100644 --- a/libbb/signals.c +++ b/libbb/signals.c | |||
@@ -31,14 +31,14 @@ int FAST_FUNC sigprocmask_allsigs(int how) | |||
31 | return sigprocmask(how, &set, NULL); | 31 | return sigprocmask(how, &set, NULL); |
32 | } | 32 | } |
33 | 33 | ||
34 | int FAST_FUNC sigprocmask_SIG_SETMASK(sigset_t *set) | 34 | int FAST_FUNC sigprocmask2(int how, sigset_t *set) |
35 | { | 35 | { |
36 | // Grr... gcc 8.1.1: | 36 | // Grr... gcc 8.1.1: |
37 | // "passing argument 3 to restrict-qualified parameter aliases with argument 2" | 37 | // "passing argument 3 to restrict-qualified parameter aliases with argument 2" |
38 | // dance around that... | 38 | // dance around that... |
39 | sigset_t *oset FIX_ALIASING; | 39 | sigset_t *oset FIX_ALIASING; |
40 | oset = set; | 40 | oset = set; |
41 | return sigprocmask(SIG_SETMASK, set, oset); | 41 | return sigprocmask(how, set, oset); |
42 | } | 42 | } |
43 | 43 | ||
44 | void FAST_FUNC bb_signals(int sigs, void (*f)(int)) | 44 | void FAST_FUNC bb_signals(int sigs, void (*f)(int)) |
diff --git a/networking/inetd.c b/networking/inetd.c index ca1a97268..8f871ee12 100644 --- a/networking/inetd.c +++ b/networking/inetd.c | |||
@@ -488,7 +488,7 @@ static void block_CHLD_HUP_ALRM(sigset_t *m) | |||
488 | sigaddset(m, SIGCHLD); | 488 | sigaddset(m, SIGCHLD); |
489 | sigaddset(m, SIGHUP); | 489 | sigaddset(m, SIGHUP); |
490 | sigaddset(m, SIGALRM); | 490 | sigaddset(m, SIGALRM); |
491 | sigprocmask(SIG_BLOCK, m, m); /* old sigmask is stored in m */ | 491 | sigprocmask2(SIG_BLOCK, m); /* old sigmask is stored in m */ |
492 | } | 492 | } |
493 | 493 | ||
494 | static void restore_sigmask(sigset_t *m) | 494 | static void restore_sigmask(sigset_t *m) |
diff --git a/shell/ash.c b/shell/ash.c index 456aca4f0..a01c8fa8b 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -4217,7 +4217,7 @@ wait_block_or_sig(int *status) | |||
4217 | /* Children exist, but none are ready. Sleep until interesting signal */ | 4217 | /* Children exist, but none are ready. Sleep until interesting signal */ |
4218 | #if 1 | 4218 | #if 1 |
4219 | sigfillset(&mask); | 4219 | sigfillset(&mask); |
4220 | sigprocmask_SIG_SETMASK(&mask); /* mask is updated */ | 4220 | sigprocmask2(SIG_SETMASK, &mask); /* mask is updated */ |
4221 | while (!got_sigchld && !pending_sig) | 4221 | while (!got_sigchld && !pending_sig) |
4222 | sigsuspend(&mask); | 4222 | sigsuspend(&mask); |
4223 | sigprocmask(SIG_SETMASK, &mask, NULL); | 4223 | sigprocmask(SIG_SETMASK, &mask, NULL); |
diff --git a/shell/hush.c b/shell/hush.c index 5953ceb9f..2e4a4bcc6 100644 --- a/shell/hush.c +++ b/shell/hush.c | |||
@@ -11442,7 +11442,7 @@ static int wait_for_child_or_signal(struct pipe *waitfor_pipe, pid_t waitfor_pid | |||
11442 | * and get stuck in sigsuspend... | 11442 | * and get stuck in sigsuspend... |
11443 | */ | 11443 | */ |
11444 | sigfillset(&oldset); /* block all signals, remember old set */ | 11444 | sigfillset(&oldset); /* block all signals, remember old set */ |
11445 | sigprocmask_SIG_SETMASK(&oldset); | 11445 | sigprocmask2(SIG_SETMASK, &oldset); |
11446 | 11446 | ||
11447 | if (!sigisemptyset(&G.pending_set)) { | 11447 | if (!sigisemptyset(&G.pending_set)) { |
11448 | /* Crap! we raced with some signal! */ | 11448 | /* Crap! we raced with some signal! */ |