if strlen(s) was 0, it would then end up using s[-1] as an array index. Bad,

bad, bad.  This was crashing the shell on powerpc boxes, though all other archs
seem to have a much more forgiving malloc implementations.  I finally found
this bug using electric-fence on a powerpc box.
 -Erik
This commit is contained in:
Eric Andersen 2001-04-03 22:50:52 +00:00
parent c97ec34370
commit 60b2d8d2c8

View File

@ -33,13 +33,14 @@
void trim(char *s)
{
int len;
/* trim trailing whitespace */
while (isspace(s[strlen(s)-1]))
s[strlen(s)-1]='\0';
while ( (len=strlen(s)) >= 1 && isspace(s[len-1]))
s[len-1]='\0';
/* trim leading whitespace */
memmove(s, &s[strspn(s, " \n\r\t\v")], strlen(s));
memmove(s, &s[strspn(s, " \n\r\t\v")], len);
}
/* END CODE */