diff --git a/src/acl.c b/src/acl.c index a4744602e..f7ac06c0e 100644 --- a/src/acl.c +++ b/src/acl.c @@ -324,7 +324,7 @@ int acl_parse_int(const char **text, struct acl_pattern *pattern, int *opaque) const char *ptr = *text; - while (!isdigit(*ptr)) { + while (!isdigit((unsigned char)*ptr)) { if (strcmp(ptr, "eq") == 0) *opaque = 0; else if (strcmp(ptr, "gt") == 0) *opaque = 1; else if (strcmp(ptr, "ge") == 0) *opaque = 2; diff --git a/src/cfgparse.c b/src/cfgparse.c index f3aefa0d5..39abbc318 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -1335,7 +1335,7 @@ int cfg_parse_listen(const char *file, int linenum, char **args) if (rport) { *rport++ = 0; realport = atol(rport); - if (!isdigit((int)*rport)) + if (!isdigit((unsigned char)*rport)) newsrv->state |= SRV_MAPPORTS; } else { realport = 0; @@ -2264,7 +2264,7 @@ int readcfgfile(const char *file) end = line + strlen(line); /* skip leading spaces */ - while (isspace((int)*line)) + while (isspace((unsigned char)*line)) line++; arg = 0; @@ -2318,10 +2318,10 @@ int readcfgfile(const char *file) *line = 0; break; } - else if (isspace((int)*line)) { + else if (isspace((unsigned char)*line)) { /* a non-escaped space is an argument separator */ *line++ = 0; - while (isspace((int)*line)) + while (isspace((unsigned char)*line)) line++; args[++arg] = line; } diff --git a/src/proto_http.c b/src/proto_http.c index 33f1a95b8..9044d5d0a 100644 --- a/src/proto_http.c +++ b/src/proto_http.c @@ -4264,7 +4264,7 @@ void manage_client_side_cookies(struct session *t, struct buffer *req) while (p1 < cur_end) { if (*p1 == ';' || *p1 == ',') colon = p1; - else if (!isspace((int)*p1)) + else if (!isspace((unsigned char)*p1)) break; p1++; } @@ -4285,7 +4285,7 @@ void manage_client_side_cookies(struct session *t, struct buffer *req) break; p4 = p3; - while (p4 < cur_end && !isspace((int)*p4) && *p4 != ';' && *p4 != ',') + while (p4 < cur_end && !isspace((unsigned char)*p4) && *p4 != ';' && *p4 != ',') p4++; /* here, we have the cookie name between p1 and p2, @@ -4833,7 +4833,7 @@ void manage_server_side_cookies(struct session *t, struct buffer *rtr) break; p4 = p3; - while (p4 < cur_end && !isspace((int)*p4) && *p4 != ';') + while (p4 < cur_end && !isspace((unsigned char)*p4) && *p4 != ';') p4++; /* here, we have the cookie name between p1 and p2, @@ -5025,7 +5025,7 @@ void check_response_for_cacheability(struct session *t, struct buffer *rtr) /* p1 is at the beginning of the value */ p2 = p1; - while (p2 < cur_end && *p2 != '=' && *p2 != ',' && !isspace((int)*p2)) + while (p2 < cur_end && *p2 != '=' && *p2 != ',' && !isspace((unsigned char)*p2)) p2++; /* we have a complete value between p1 and p2 */ @@ -5622,11 +5622,11 @@ acl_fetch_path(struct proxy *px, struct session *l4, void *l7, int dir, if (*ptr == '*') return 0; - if (isalpha(*ptr)) { + if (isalpha((unsigned char)*ptr)) { /* this is a scheme as described by RFC3986, par. 3.1 */ ptr++; while (ptr < end && - (isalnum(*ptr) || *ptr == '+' || *ptr == '-' || *ptr == '.')) + (isalnum((unsigned char)*ptr) || *ptr == '+' || *ptr == '-' || *ptr == '.')) ptr++; /* skip '://' */ if (ptr == end || *ptr++ != ':') diff --git a/src/regex.c b/src/regex.c index ae7620068..70093667f 100644 --- a/src/regex.c +++ b/src/regex.c @@ -31,7 +31,7 @@ int exp_replace(char *dst, char *src, const char *str, const regmatch_t *matches while (*str) { if (*str == '\\') { str++; - if (isdigit((int)*str)) { + if (isdigit((unsigned char)*str)) { int len, num; num = *str - '0'; @@ -74,7 +74,7 @@ const char *check_replace_string(const char *str) str++; if (!*str) return err; - else if (isdigit((int)*str)) + else if (isdigit((unsigned char)*str)) err = NULL; else if (*str == 'x') { str++;