aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-12-08 15:35:24 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-12-08 15:35:24 +0100
commitb437df1157964ed012f1aeae25b68f6bbaae1787 (patch)
treede5ff5875f1d527ad2e701039477303a4e41430c
parent136fe9bede247d3273f5e82b5e856fa5c15a922c (diff)
downloadbusybox-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.h4
-rw-r--r--libbb/signals.c4
-rw-r--r--networking/inetd.c2
-rw-r--r--shell/ash.c2
-rw-r--r--shell/hush.c2
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;
544int sigaction_set(int sig, const struct sigaction *act) FAST_FUNC; 544int sigaction_set(int sig, const struct sigaction *act) FAST_FUNC;
545/* SIG_BLOCK/SIG_UNBLOCK all signals: */ 545/* SIG_BLOCK/SIG_UNBLOCK all signals: */
546int sigprocmask_allsigs(int how) FAST_FUNC; 546int 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: */
548int sigprocmask_SIG_SETMASK(sigset_t *set) FAST_FUNC; 548int sigprocmask2(int how, sigset_t *set) FAST_FUNC;
549/* Standard handler which just records signo */ 549/* Standard handler which just records signo */
550extern smallint bb_got_signal; 550extern smallint bb_got_signal;
551void record_signo(int signo); /* not FAST_FUNC! */ 551void 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
34int FAST_FUNC sigprocmask_SIG_SETMASK(sigset_t *set) 34int 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
44void FAST_FUNC bb_signals(int sigs, void (*f)(int)) 44void 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
494static void restore_sigmask(sigset_t *m) 494static 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! */