svn commit: trunk/busybox: init loginutils networking runit util-li etc...
vda at busybox.net
vda at busybox.net
Sun Nov 9 00:15:11 UTC 2008
Author: vda
Date: 2008-11-08 16:15:11 -0800 (Sat, 08 Nov 2008)
New Revision: 23970
Log:
*: a bit of code shrink
function old new delta
stop_handler 41 38 -3
sulogin_main 508 504 -4
got_cont 4 - -4
cont_handler 11 - -11
startservice 309 297 -12
processorstart 423 409 -14
tcpudpsvd_main 1861 1843 -18
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 0/5 up/down: 0/-66) Total: -66 bytes
Modified:
trunk/busybox/init/init.c
trunk/busybox/loginutils/login.c
trunk/busybox/loginutils/sulogin.c
trunk/busybox/networking/nc.c
trunk/busybox/networking/tcpudp.c
trunk/busybox/runit/runsv.c
trunk/busybox/runit/svlogd.c
trunk/busybox/util-linux/script.c
Changeset:
Modified: trunk/busybox/init/init.c
===================================================================
--- trunk/busybox/init/init.c 2008-11-08 22:31:19 UTC (rev 23969)
+++ trunk/busybox/init/init.c 2008-11-09 00:15:11 UTC (rev 23970)
@@ -60,7 +60,6 @@
static struct init_action *init_action_list = NULL;
static const char *log_console = VC_5;
-static sig_atomic_t got_cont = 0;
enum {
L_LOG = 0x1,
@@ -613,24 +612,21 @@
run_actions(CTRLALTDEL);
}
+/* The SIGCONT handler is set to record_signo().
+ * It just sets bb_got_signal = SIGCONT. */
+
/* The SIGSTOP & SIGTSTP handler */
static void stop_handler(int sig UNUSED_PARAM)
{
int saved_errno = errno;
- got_cont = 0;
- while (!got_cont)
+ bb_got_signal = 0;
+ while (bb_got_signal == 0)
pause();
errno = saved_errno;
}
-/* The SIGCONT handler */
-static void cont_handler(int sig UNUSED_PARAM)
-{
- got_cont = 1;
-}
-
static void new_init_action(uint8_t action_type, const char *command, const char *cons)
{
struct init_action *a, *last;
@@ -808,7 +804,7 @@
+ (1 << SIGTERM) /* reboot */
, halt_reboot_pwoff);
signal(SIGINT, ctrlaltdel_signal);
- signal(SIGCONT, cont_handler);
+ signal(SIGCONT, record_signo);
bb_signals(0
+ (1 << SIGSTOP)
+ (1 << SIGTSTP)
Modified: trunk/busybox/loginutils/login.c
===================================================================
--- trunk/busybox/loginutils/login.c 2008-11-08 22:31:19 UTC (rev 23969)
+++ trunk/busybox/loginutils/login.c 2008-11-09 00:15:11 UTC (rev 23970)
@@ -486,8 +486,8 @@
// If this stuff is really needed, add it and explain why!
/* Set signals to defaults */
- /*signal(SIGALRM, SIG_DFL); - not needed, we already set it
- * to non-SIG_IGN, and on exec such signals are reset to SIG_DFL */
+ /* Non-ignored signals revert to SIG_DFL on exec anyway */
+ /*signal(SIGALRM, SIG_DFL);*/
/* Is this correct? This way user can ctrl-c out of /etc/profile,
* potentially creating security breach (tested with bash 3.0).
Modified: trunk/busybox/loginutils/sulogin.c
===================================================================
--- trunk/busybox/loginutils/sulogin.c 2008-11-08 22:31:19 UTC (rev 23969)
+++ trunk/busybox/loginutils/sulogin.c 2008-11-09 00:15:11 UTC (rev 23970)
@@ -32,11 +32,12 @@
opt_complementary = "t+"; /* -t N */
getopt32(argv, "t:", &timeout);
+ argv += optind;
- if (argv[optind]) {
+ if (argv[0]) {
close(0);
close(1);
- dup(xopen(argv[optind], O_RDWR));
+ dup(xopen(argv[0], O_RDWR));
close(2);
dup(0);
}
Modified: trunk/busybox/networking/nc.c
===================================================================
--- trunk/busybox/networking/nc.c 2008-11-08 22:31:19 UTC (rev 23969)
+++ trunk/busybox/networking/nc.c 2008-11-09 00:15:11 UTC (rev 23970)
@@ -131,7 +131,8 @@
if (wsecs) {
alarm(0);
- signal(SIGALRM, SIG_DFL);
+ /* Non-ignored siganls revert to SIG_DFL on exec anyway */
+ /*signal(SIGALRM, SIG_DFL);*/
}
/* -e given? */
Modified: trunk/busybox/networking/tcpudp.c
===================================================================
--- trunk/busybox/networking/tcpudp.c 2008-11-08 22:31:19 UTC (rev 23969)
+++ trunk/busybox/networking/tcpudp.c 2008-11-09 00:15:11 UTC (rev 23970)
@@ -497,9 +497,9 @@
xdup2(0, 1);
- signal(SIGTERM, SIG_DFL);
- signal(SIGPIPE, SIG_DFL);
- signal(SIGCHLD, SIG_DFL);
+ signal(SIGPIPE, SIG_DFL); /* this one was SIG_IGNed */
+ /* Non-ignored signals revert to SIG_DFL on exec anyway */
+ /*signal(SIGCHLD, SIG_DFL);*/
sig_unblock(SIGCHLD);
#ifdef SSLSVD
Modified: trunk/busybox/runit/runsv.c
===================================================================
--- trunk/busybox/runit/runsv.c 2008-11-08 22:31:19 UTC (rev 23969)
+++ trunk/busybox/runit/runsv.c 2008-11-09 00:15:11 UTC (rev 23970)
@@ -336,10 +336,11 @@
xdup2(logpipe.wr, 1);
}
}
- bb_signals(0
+ /* Non-ignored signals revert to SIG_DFL on exec anyway */
+ /*bb_signals(0
+ (1 << SIGCHLD)
+ (1 << SIGTERM)
- , SIG_DFL);
+ , SIG_DFL);*/
sig_unblock(SIGCHLD);
sig_unblock(SIGTERM);
execvp(*run, run);
Modified: trunk/busybox/runit/svlogd.c
===================================================================
--- trunk/busybox/runit/svlogd.c 2008-11-08 22:31:19 UTC (rev 23969)
+++ trunk/busybox/runit/svlogd.c 2008-11-09 00:15:11 UTC (rev 23970)
@@ -227,11 +227,12 @@
int fd;
/* child */
- bb_signals(0
+ /* Non-ignored signals revert to SIG_DFL on exec anyway */
+ /*bb_signals(0
+ (1 << SIGTERM)
+ (1 << SIGALRM)
+ (1 << SIGHUP)
- , SIG_DFL);
+ , SIG_DFL);*/
sig_unblock(SIGTERM);
sig_unblock(SIGALRM);
sig_unblock(SIGHUP);
Modified: trunk/busybox/util-linux/script.c
===================================================================
--- trunk/busybox/util-linux/script.c 2008-11-08 22:31:19 UTC (rev 23969)
+++ trunk/busybox/util-linux/script.c 2008-11-09 00:15:11 UTC (rev 23970)
@@ -179,7 +179,8 @@
setsid();
ioctl(0, TIOCSCTTY, 0 /* 0: don't forcibly steal */);
- /* signal(SIGCHLD, SIG_DFL); - exec does this for us */
+ /* Non-ignored signals revert to SIG_DFL on exec anyway */
+ /*signal(SIGCHLD, SIG_DFL);*/
execl(shell, shell, shell_opt, shell_arg, NULL);
bb_simple_perror_msg_and_die(shell);
}
More information about the busybox-cvs
mailing list