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)
|
void trim(char *s)
|
||||||
{
|
{
|
||||||
|
int len;
|
||||||
|
|
||||||
/* trim trailing whitespace */
|
/* trim trailing whitespace */
|
||||||
while (isspace(s[strlen(s)-1]))
|
while ( (len=strlen(s)) >= 1 && isspace(s[len-1]))
|
||||||
s[strlen(s)-1]='\0';
|
s[len-1]='\0';
|
||||||
|
|
||||||
/* trim leading whitespace */
|
/* 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 */
|
/* END CODE */
|
||||||
|
Loading…
Reference in New Issue
Block a user