svn commit: trunk/busybox: libbb procps

vda at busybox.net vda at busybox.net
Sat Dec 23 01:06:23 UTC 2006


Author: vda
Date: 2006-12-22 17:06:21 -0800 (Fri, 22 Dec 2006)
New Revision: 17061

Log:
fix recognitions of -SIGname signals
(fix by Jacques LUDER <jacques.luder at thalesgroup.com>)


Modified:
   trunk/busybox/libbb/u_signal_names.c
   trunk/busybox/procps/fuser.c


Changeset:
Modified: trunk/busybox/libbb/u_signal_names.c
===================================================================
--- trunk/busybox/libbb/u_signal_names.c	2006-12-23 00:49:10 UTC (rev 17060)
+++ trunk/busybox/libbb/u_signal_names.c	2006-12-23 01:06:21 UTC (rev 17061)
@@ -15,7 +15,8 @@
 } signals[] = {
 	// SUSv3 says kill must support these, and specifies the numerical values,
 	// http://www.opengroup.org/onlinepubs/009695399/utilities/kill.html
-	{0, "0"}, {1, "HUP"}, {2, "INT"}, {3, "QUIT"}, {6, "ABRT"}, {9, "KILL"},
+	// TODO: "[SIG]EXIT" shouldn't work for kill, right?
+	{0, "EXIT"}, {1, "HUP"}, {2, "INT"}, {3, "QUIT"}, {6, "ABRT"}, {9, "KILL"},
 	{14, "ALRM"}, {15, "TERM"},
 	// And Posix adds the following:
 	{SIGILL, "ILL"}, {SIGTRAP, "TRAP"}, {SIGFPE, "FPE"}, {SIGUSR1, "USR1"},
@@ -30,13 +31,13 @@
 {
 	int i;
 
-	i = atoi(name);
-	if (i) return i;
+	i = bb_strtou(name, NULL, 10);
+	if (!errno) return i;
 	for (i = 0; i < sizeof(signals) / sizeof(struct signal_name); i++)
-		if (!strcasecmp(signals[i].name, name) ||
-			(!strncasecmp(signals[i].name, "SIG", 3)
-				 && !strcasecmp(signals[i].name+3, signals[i].name)))
-					return signals[i].number;
+		if (strcasecmp(name, signals[i].name) == 0
+		 || (strncasecmp(name, "SIG", 3) == 0
+		     && strcasecmp(&name[3], signals[i].name) == 0))
+				return signals[i].number;
 	return -1;
 }
 

Modified: trunk/busybox/procps/fuser.c
===================================================================
--- trunk/busybox/procps/fuser.c	2006-12-23 00:49:10 UTC (rev 17060)
+++ trunk/busybox/procps/fuser.c	2006-12-23 01:06:21 UTC (rev 17061)
@@ -323,7 +323,8 @@
 		optn = fuser_option(argv[i]);
 		if(optn) opt |= optn;
 		else if(argv[i][0] == '-') {
-			if(0>(killsig = get_signum(argv[i]+1)))
+			killsig = get_signum(argv[i]+1);
+			if(0 > killsig)
 				killsig = SIGTERM;
 		}
 		else {




More information about the busybox-cvs mailing list