aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Andersen <andersen@codepoet.org>2000-04-18 22:41:30 +0000
committerErik Andersen <andersen@codepoet.org>2000-04-18 22:41:30 +0000
commitb9167cb67f3316e2220cc4d209bb75880d619bc6 (patch)
tree2db48e0c162a1fab3bd00fd2c314d6e9e2d8c007
parent632bb571357c4cef455c00fb06493810284e544d (diff)
downloadbusybox-b9167cb67f3316e2220cc4d209bb75880d619bc6.tar.gz
Really fix the killall segfault this time.
-Erik
-rw-r--r--Changelog6
-rw-r--r--utility.c9
2 files changed, 10 insertions, 5 deletions
diff --git a/Changelog b/Changelog
index e26a85039..e9d260593 100644
--- a/Changelog
+++ b/Changelog
@@ -21,6 +21,7 @@
* Added tr from John Lombardo <john@deltanet.com>
* Added echo and test (from me).
* Added usleep contributed by Nicolas Pitre <nico@cam.org>
+ * BusyBox's bss size has been majorly reduced (was 384668, is now 28740).
* Several fixes from Pavel Roskin <pavel_roskin@geocities.com>:
- When `tail' fails to open a file it now exits.
- When `syslogd' is given the `-n' option it should still use
@@ -60,7 +61,10 @@
the common error handling saves a few bytes. Thanks to
Bob Tinsley <bob@earthrise.demon.co.uk> for the patch.
* Fix "+" parsing bug in date, from "Merle F. McClelland" <mfm@cts.com>.
- * BusyBox's bss size has been majorly reduced (was 384668, is now 28740).
+ * Fix symlink following bug in chmod -R and friends.
+ * Now allows SYSV style 'chown foo:bar' in addition to 'chown foo.bar'
+ * Fixed a bug in the busybox globbing routine such that 'find /dir -name [i]'
+ no longer segfaults.
-Erik Andersen
diff --git a/utility.c b/utility.c
index 773f6a83e..90eec4e21 100644
--- a/utility.c
+++ b/utility.c
@@ -1315,7 +1315,8 @@ extern pid_t* findPidByName( char* pidName)
if (isspace(*(p)))
*p='\0';
- if ((strstr(info.command_line, pidName) != NULL)) {
+ if ((strstr(info.command_line, pidName) != NULL)
+ && (strlen(pidName) == strlen(info.command_line))) {
pidList=realloc( pidList, sizeof(pid_t) * (j+2));
if (pidList==NULL)
fatalError("out of memory\n");
@@ -1362,7 +1363,7 @@ extern pid_t* findPidByName( char* pidName)
FILE *status;
char filename[256];
char buffer[256];
- char* p, *q;
+ char* p;
/* If it isn't a number, we don't want it */
if (!isdigit(*next->d_name))
@@ -1387,8 +1388,8 @@ extern pid_t* findPidByName( char* pidName)
}
p=buffer+6; /* Skip the "Name:\t" */
- if (((q=strstr(p, pidName)) != NULL)
- && (strncmp(q, pidName, strlen(pidName)) != 0)) {
+ if ((strstr(p, pidName) != NULL)
+ && (strlen(pidName) == strlen(p))) {
pidList=realloc( pidList, sizeof(pid_t) * (i+2));
if (pidList==NULL)
fatalError("out of memory\n");