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:
parent
c97ec34370
commit
60b2d8d2c8
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user