From b9167cb67f3316e2220cc4d209bb75880d619bc6 Mon Sep 17 00:00:00 2001 From: Erik Andersen Date: Tue, 18 Apr 2000 22:41:30 +0000 Subject: Really fix the killall segfault this time. -Erik --- Changelog | 6 +++++- utility.c | 9 +++++---- 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 * Added echo and test (from me). * Added usleep contributed by Nicolas Pitre + * BusyBox's bss size has been majorly reduced (was 384668, is now 28740). * Several fixes from Pavel Roskin : - 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 for the patch. * Fix "+" parsing bug in date, from "Merle F. McClelland" . - * 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"); -- cgit v1.2.3