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