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