fix undefined behaviour of use of isalpha, isdigit and tolower

"The argument c must be EOF or representable as an unsigned char;
 otherwise, the result is undefined."
This commit is contained in:
Hiltjo Posthuma 2019-12-16 18:26:01 +01:00
parent bf06f14188
commit 1411224b16
1 changed files with 3 additions and 3 deletions

6
ii.c
View File

@ -140,9 +140,9 @@ static void
channel_normalize_path(char *s)
{
for (; *s; s++) {
if (isalpha(*s))
*s = tolower(*s);
else if (!isdigit(*s) && !strchr(".#&+!-", *s))
if (isalpha((unsigned char)*s))
*s = tolower((unsigned char)*s);
else if (!isdigit((unsigned char)*s) && !strchr(".#&+!-", *s))
*s = '_';
}
}