From: Wayne Davison Date: Sun, 20 Feb 2005 17:07:31 +0000 (+0000) Subject: Cast char* to uchar* when dereferencing characters for isdigit() X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/732537212b24a7567e510ac58092a25e5329f457 Cast char* to uchar* when dereferencing characters for isdigit() and isprint(). --- diff --git a/util.c b/util.c index 42b5e100..fc670afc 100644 --- a/util.c +++ b/util.c @@ -891,7 +891,7 @@ const char *safe_fname(const char *fname) ndx = (ndx + 1) % MAX_SAFE_NAMES; for (t = fbuf[ndx]; *fname; fname++) { - if (!isprint(*fname)) + if (!isprint(*(uchar*)fname)) *t++ = '?'; else *t++ = *fname; @@ -1262,7 +1262,7 @@ const char *find_filename_suffix(const char *fn, int fn_len, int *len_ptr) if (strcmp(s+1, "orig") == 0) continue; } else if (s_len > 2 && had_tilde - && s[1] == '~' && isdigit(s[2])) + && s[1] == '~' && isdigit(*(uchar*)(s+2))) continue; *len_ptr = s_len; suf = s; @@ -1270,7 +1270,7 @@ const char *find_filename_suffix(const char *fn, int fn_len, int *len_ptr) break; /* Determine if the suffix is all digits. */ for (s++, s_len--; s_len > 0; s++, s_len--) { - if (!isdigit(*s)) + if (!isdigit(*(uchar*)s)) return suf; } /* An all-digit suffix may not be that signficant. */