Really fix the killall segfault this time.
authorErik Andersen <andersen@codepoet.org>
Tue, 18 Apr 2000 22:41:30 +0000 (22:41 -0000)
committerErik Andersen <andersen@codepoet.org>
Tue, 18 Apr 2000 22:41:30 +0000 (22:41 -0000)
 -Erik

Changelog
utility.c

index e26a85039a913da11557df0e68a03910c2365710..e9d260593207f09c1234b5e599a856722e7f4c34 100644 (file)
--- 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 
            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
index 773f6a83ed0236af491a1d05c7ead621ef291e01..90eec4e21be58e02ae565cfabff0a20fb6b7a0d9 100644 (file)
--- 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");