Usage of isspace and friends
- From
- Morten Welinder <mwelinder@gmail.com>
- Date
- Oct 12, 2005, 01:40 UTC
- Message-ID
- <118833cc0510111840k715e1190l54ad65f821c77848@mail.gmail.com>
Someone needs to audit the usage of isspace, tolower, and friends. There are things like this in the code:
static int is_dev_null(const char *str)
{
return !memcmp("/dev/null", str, 9) && isspace(str[9]);
}Since str[9] is of type char it should not be used as a argument to isspace directly, but rather be cast to unsigned char:
... isspace((unsigned char)str[9]);
Admittedly that is ugly. Blame K&R. (Glibc has a partial workaround for this kind of coding bug. On the up side you won't get a crash, but on the down side you can get the wrong result.)
Morten