Re: Usage of isspace and friends
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:08
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:08
Morten Welinder [off-list ref] writes:
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]);Huh? isspace is "int isspace(int)". Presumably standard integral promotion rules applies here whether char is signed or unsigned, doesn't it? The snippet you quoted is from apply.c, and I would say what is more problematic is that we do not force C locale while parsing the diff (see another thread -- we would want to process diffs as byte streams).