GHSA-m8rr-4c36-8gq4: Consistently pass unsigned char to ctype.h functions

Fixes GHSA-m8rr-4c36-8gq4
Fixes CVE-2026-7258
This commit is contained in:
Ilija Tovilo committed 2026-05-06 13:08:17 +02:00
commit 398b7dabfb
58 files changed
+183 -183

No files matched your search

+1 -1
View File
@@ -2102,7 +2102,7 @@ ZEND_API size_t zend_dirname(char *path, size_t len)
/* Note that on Win32 CWD is per drive (heritage from CP/M).
* This means dirname("c:foo") maps to "c:." or "c:" - which means CWD on C: drive.
*/
if ((2 <= len) && isalpha((int)((unsigned char *)path)[0]) && (':' == path[1])) {
if ((2 <= len) && isalpha((unsigned char)path[0]) && (':' == path[1])) {
/* Skip over the drive spec (if any) so as not to change */
path += 2;
len_adjust += 2;
+3 -3
View File
@@ -595,7 +595,7 @@ static const char *zend_ini_consume_quantity_prefix(const char *const digits, co
++digits_consumed;
}
if (digits_consumed[0] == '0' && !isdigit(digits_consumed[1])) {
if (digits_consumed[0] == '0' && !isdigit((unsigned char)digits_consumed[1])) {
/* Value is just 0 */
if ((digits_consumed+1) == str_end) {
return digits_consumed;
@@ -653,7 +653,7 @@ static zend_ulong zend_ini_parse_quantity_internal(zend_string *value, zend_ini_
}
/* if there is no digit after +/- */
if (!isdigit(digits[0])) {
if (!isdigit((unsigned char)digits[0])) {
/* Escape the string to avoid null bytes and to make non-printable chars
* visible */
smart_str_append_escaped(&invalid, ZSTR_VAL(value), ZSTR_LEN(value));
@@ -667,7 +667,7 @@ static zend_ulong zend_ini_parse_quantity_internal(zend_string *value, zend_ini_
}
int base = 0;
if (digits[0] == '0' && !isdigit(digits[1])) {
if (digits[0] == '0' && !isdigit((unsigned char)digits[1])) {
/* Value is just 0 */
if ((digits+1) == str_end) {
*errstr = NULL;
+4 -4
View File
@@ -3233,8 +3233,8 @@ ZEND_API int ZEND_FASTCALL zend_binary_strcasecmp_l(const char *s1, size_t len1,
len = MIN(len1, len2);
while (len--) {
c1 = zend_tolower((int)*(unsigned char *)s1++);
c2 = zend_tolower((int)*(unsigned char *)s2++);
c1 = zend_tolower((unsigned char)*(s1++));
c2 = zend_tolower((unsigned char)*(s2++));
if (c1 != c2) {
return c1 - c2;
}
@@ -3254,8 +3254,8 @@ ZEND_API int ZEND_FASTCALL zend_binary_strncasecmp_l(const char *s1, size_t len1
}
len = MIN(length, MIN(len1, len2));
while (len--) {
c1 = zend_tolower((int)*(unsigned char *)s1++);
c2 = zend_tolower((int)*(unsigned char *)s2++);
c1 = zend_tolower((unsigned char)*(s1++));
c2 = zend_tolower((unsigned char)*(s2++));
if (c1 != c2) {
return c1 - c2;
}
+5 -5
View File
@@ -195,7 +195,7 @@ void virtual_cwd_main_cwd_init(uint8_t reinit) /* {{{ */
main_cwd_state.cwd_length = strlen(cwd);
#ifdef ZEND_WIN32
if (main_cwd_state.cwd_length >= 2 && cwd[1] == ':') {
cwd[0] = toupper(cwd[0]);
cwd[0] = toupper((unsigned char)cwd[0]);
}
#endif
main_cwd_state.cwd = strdup(cwd);
@@ -273,7 +273,7 @@ CWD_API char *virtual_getcwd_ex(size_t *length) /* {{{ */
*length = state->cwd_length+1;
retval = (char *) emalloc(*length+1);
memcpy(retval, state->cwd, *length);
retval[0] = toupper(retval[0]);
retval[0] = toupper((unsigned char)retval[0]);
retval[*length-1] = DEFAULT_SLASH;
retval[*length] = '\0';
return retval;
@@ -1115,7 +1115,7 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
if (resolved_path[start] == 0) {
goto verify;
}
resolved_path[start] = toupper(resolved_path[start]);
resolved_path[start] = toupper((unsigned char)resolved_path[start]);
start++;
}
resolved_path[start++] = DEFAULT_SLASH;
@@ -1123,13 +1123,13 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
if (resolved_path[start] == 0) {
goto verify;
}
resolved_path[start] = toupper(resolved_path[start]);
resolved_path[start] = toupper((unsigned char)resolved_path[start]);
start++;
}
resolved_path[start++] = DEFAULT_SLASH;
} else if (IS_ABSOLUTE_PATH(resolved_path, path_length)) {
/* skip DRIVE name */
resolved_path[0] = toupper(resolved_path[0]);
resolved_path[0] = toupper((unsigned char)resolved_path[0]);
resolved_path[2] = DEFAULT_SLASH;
if (path_length == 2) {
resolved_path[3] = '\0';
+1 -1
View File
@@ -85,7 +85,7 @@ typedef unsigned short mode_t;
#define IS_UNC_PATH(path, len) \
(len >= 2 && IS_SLASH(path[0]) && IS_SLASH(path[1]))
#define IS_ABSOLUTE_PATH(path, len) \
(len >= 2 && (/* is local */isalpha(path[0]) && path[1] == ':' || /* is UNC */IS_SLASH(path[0]) && IS_SLASH(path[1])))
(len >= 2 && (/* is local */isalpha((unsigned char)(path)[0]) && path[1] == ':' || /* is UNC */IS_SLASH(path[0]) && IS_SLASH(path[1])))
#else
#ifdef HAVE_DIRENT_H
+2 -2
View File
@@ -118,11 +118,11 @@ static PHP_INI_MH(OnTypeLibFileUpdate)
}
/* Remove leading/training white spaces on search_string */
while (isspace(*typelib_name)) {/* Ends on '\0' in worst case */
while (isspace((unsigned char)*typelib_name)) {/* Ends on '\0' in worst case */
typelib_name ++;
}
ptr = typelib_name + strlen(typelib_name) - 1;
while ((ptr != typelib_name) && isspace(*ptr)) {
while ((ptr != typelib_name) && isspace((unsigned char)*ptr)) {
*ptr = '\0';
ptr--;
}
+5 -5
View File
@@ -511,7 +511,7 @@ static timelib_sll timelib_get_nr(const char **ptr, int max_length)
static void timelib_skip_day_suffix(const char **ptr)
{
if (isspace(**ptr)) {
if (isspace((unsigned char)**ptr)) {
return;
}
if (!timelib_strncasecmp(*ptr, "nd", 2) || !timelib_strncasecmp(*ptr, "rd", 2) ||!timelib_strncasecmp(*ptr, "st", 2) || !timelib_strncasecmp(*ptr, "th", 2)) {
@@ -852,7 +852,7 @@ static timelib_long timelib_parse_tz_cor(const char **ptr, int *tz_not_found)
*tz_not_found = 1;
while (isdigit(**ptr) || **ptr == ':') {
while (isdigit((unsigned char)**ptr) || **ptr == ':') {
++*ptr;
}
end = *ptr;
@@ -917,7 +917,7 @@ static timelib_long timelib_parse_tz_minutes(const char **ptr, timelib_time *t)
}
++*ptr;
while (isdigit(**ptr)) {
while (isdigit((unsigned char)**ptr)) {
++*ptr;
}
@@ -24863,10 +24863,10 @@ timelib_time *timelib_strtotime(const char *s, size_t len, timelib_error_contain
in.errors->error_messages = NULL;
if (len > 0) {
while (isspace(*s) && s < e) {
while (isspace((unsigned char)*s) && s < e) {
s++;
}
while (isspace(*e) && e > s) {
while (isspace((unsigned char)*e) && e > s) {
e--;
}
}
+5 -5
View File
@@ -509,7 +509,7 @@ static timelib_sll timelib_get_nr(const char **ptr, int max_length)
static void timelib_skip_day_suffix(const char **ptr)
{
if (isspace(**ptr)) {
if (isspace((unsigned char)**ptr)) {
return;
}
if (!timelib_strncasecmp(*ptr, "nd", 2) || !timelib_strncasecmp(*ptr, "rd", 2) ||!timelib_strncasecmp(*ptr, "st", 2) || !timelib_strncasecmp(*ptr, "th", 2)) {
@@ -850,7 +850,7 @@ static timelib_long timelib_parse_tz_cor(const char **ptr, int *tz_not_found)
*tz_not_found = 1;
while (isdigit(**ptr) || **ptr == ':') {
while (isdigit((unsigned char)**ptr) || **ptr == ':') {
++*ptr;
}
end = *ptr;
@@ -915,7 +915,7 @@ static timelib_long timelib_parse_tz_minutes(const char **ptr, timelib_time *t)
}
++*ptr;
while (isdigit(**ptr)) {
while (isdigit((unsigned char)**ptr)) {
++*ptr;
}
@@ -2013,10 +2013,10 @@ timelib_time *timelib_strtotime(const char *s, size_t len, timelib_error_contain
in.errors->error_messages = NULL;
if (len > 0) {
while (isspace(*s) && s < e) {
while (isspace((unsigned char)*s) && s < e) {
s++;
}
while (isspace(*e) && e > s) {
while (isspace((unsigned char)*e) && e > s) {
e--;
}
}
+2 -2
View File
@@ -985,10 +985,10 @@ void timelib_strtointerval(const char *s, size_t len,
in.errors->error_messages = NULL;
if (len > 0) {
while (isspace(*s) && s < e) {
while (isspace((unsigned char)*s) && s < e) {
s++;
}
while (isspace(*e) && e > s) {
while (isspace((unsigned char)*e) && e > s) {
e--;
}
}
+2 -2
View File
@@ -343,10 +343,10 @@ void timelib_strtointerval(const char *s, size_t len,
in.errors->error_messages = NULL;
if (len > 0) {
while (isspace(*s) && s < e) {
while (isspace((unsigned char)*s) && s < e) {
s++;
}
while (isspace(*e) && e > s) {
while (isspace((unsigned char)*e) && e > s) {
e--;
}
}
+1 -1
View File
@@ -126,7 +126,7 @@ void timelib_time_tz_abbr_update(timelib_time* tm, const char* tz_abbr)
TIMELIB_TIME_FREE(tm->tz_abbr);
tm->tz_abbr = timelib_strdup(tz_abbr);
for (i = 0; i < tz_abbr_len; i++) {
tm->tz_abbr[i] = toupper(tz_abbr[i]);
tm->tz_abbr[i] = toupper((unsigned char)tz_abbr[i]);
}
}
+5 -5
View File
@@ -528,21 +528,21 @@ static int _php_filter_validate_domain(char * domain, size_t len, zend_long flag
}
/* First char must be alphanumeric */
if(*s == '.' || (hostname && !isalnum((int)*(unsigned char *)s))) {
if(*s == '.' || (hostname && !isalnum((unsigned char)*s))) {
return 0;
}
while (s < e) {
if (*s == '.') {
/* The first and the last character of a label must be alphanumeric */
if (*(s + 1) == '.' || (hostname && (!isalnum((int)*(unsigned char *)(s - 1)) || !isalnum((int)*(unsigned char *)(s + 1))))) {
if (*(s + 1) == '.' || (hostname && (!isalnum((unsigned char)s[-1]) || !isalnum((unsigned char)s[1])))) {
return 0;
}
/* Reset label length counter */
i = 1;
} else {
if (i > 63 || (hostname && (*s != '-' || *(s + 1) == '\0') && !isalnum((int)*(unsigned char *)s))) {
if (i > 63 || (hostname && (*s != '-' || *(s + 1) == '\0') && !isalnum((unsigned char)*s))) {
return 0;
}
@@ -569,9 +569,9 @@ static int is_userinfo_valid(zend_string *str)
const char *valid = "-._~!$&'()*+,;=:";
const char *p = ZSTR_VAL(str);
while (p - ZSTR_VAL(str) < ZSTR_LEN(str)) {
if (isalpha(*p) || isdigit(*p) || strchr(valid, *p)) {
if (isalpha((unsigned char)*p) || isdigit((unsigned char)*p) || strchr(valid, *p)) {
p++;
} else if (*p == '%' && p - ZSTR_VAL(str) <= ZSTR_LEN(str) - 3 && isdigit(*(p+1)) && isxdigit(*(p+2))) {
} else if (*p == '%' && p - ZSTR_VAL(str) <= ZSTR_LEN(str) - 3 && isdigit((unsigned char)p[1]) && isxdigit((unsigned char)p[2])) {
p += 3;
} else {
return 0;
+5 -5
View File
@@ -523,7 +523,7 @@ ftp_raw(ftpbuf_t *ftp, const char *cmd, const size_t cmd_len, zval *return_value
array_init(return_value);
while (ftp_readline(ftp)) {
add_next_index_string(return_value, ftp->inbuf);
if (isdigit(ftp->inbuf[0]) && isdigit(ftp->inbuf[1]) && isdigit(ftp->inbuf[2]) && ftp->inbuf[3] == ' ') {
if (isdigit((unsigned char)ftp->inbuf[0]) && isdigit((unsigned char)ftp->inbuf[1]) && isdigit((unsigned char)ftp->inbuf[2]) && ftp->inbuf[3] == ' ') {
return;
}
}
@@ -865,7 +865,7 @@ ftp_pasv(ftpbuf_t *ftp, int pasv)
return 0;
}
/* parse out the IP and port */
for (ptr = ftp->inbuf; *ptr && !isdigit(*ptr); ptr++);
for (ptr = ftp->inbuf; *ptr && !isdigit((unsigned char)*ptr); ptr++);
n = sscanf(ptr, "%lu,%lu,%lu,%lu,%lu,%lu", &b[0], &b[1], &b[2], &b[3], &b[4], &b[5]);
if (n != 6) {
return 0;
@@ -1168,7 +1168,7 @@ ftp_mdtm(ftpbuf_t *ftp, const char *path, const size_t path_len)
return -1;
}
/* parse out the timestamp */
for (ptr = ftp->inbuf; *ptr && !isdigit(*ptr); ptr++);
for (ptr = ftp->inbuf; *ptr && !isdigit((unsigned char)*ptr); ptr++);
n = sscanf(ptr, "%4d%2d%2d%2d%2d%2d", &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &tm.tm_hour, &tm.tm_min, &tm.tm_sec);
if (n != 6) {
return -1;
@@ -1366,13 +1366,13 @@ ftp_getresp(ftpbuf_t *ftp)
}
/* Break out when the end-tag is found */
if (isdigit(ftp->inbuf[0]) && isdigit(ftp->inbuf[1]) && isdigit(ftp->inbuf[2]) && ftp->inbuf[3] == ' ') {
if (isdigit((unsigned char)ftp->inbuf[0]) && isdigit((unsigned char)ftp->inbuf[1]) && isdigit((unsigned char)ftp->inbuf[2]) && ftp->inbuf[3] == ' ') {
break;
}
}
/* translate the tag */
if (!isdigit(ftp->inbuf[0]) || !isdigit(ftp->inbuf[1]) || !isdigit(ftp->inbuf[2])) {
if (!isdigit((unsigned char)ftp->inbuf[0]) || !isdigit((unsigned char)ftp->inbuf[1]) || !isdigit((unsigned char)ftp->inbuf[2])) {
return 0;
}
+1 -1
View File
@@ -191,7 +191,7 @@ void gdImageXbmCtx(gdImagePtr image, char* file_name, int fg, gdIOCtx * out)
} else {
for (i=0; i<l; i++) {
/* only in C-locale isalnum() would work */
if (!isupper(name[i]) && !islower(name[i]) && !isdigit(name[i])) {
if (!isupper((unsigned char)name[i]) && !islower((unsigned char)name[i]) && !isdigit((unsigned char)name[i])) {
name[i] = '_';
}
}
+1 -1
View File
@@ -2253,7 +2253,7 @@ PHP_FUNCTION(imap_utf8)
#define SPECIAL(c) ((c) <= 0x1f || (c) >= 0x7f)
/* validate a modified-base64 character */
#define B64CHAR(c) (isalnum(c) || (c) == '+' || (c) == ',')
#define B64CHAR(c) (isalnum((unsigned char)(c)) || (c) == '+' || (c) == ',')
/* map the low 64 bits of `n' to the modified-base64 characters */
#define B64(n) ("ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
+1 -1
View File
@@ -1230,7 +1230,7 @@ static int strToMatch(const char* str ,char *retstr)
if( *str == '-' ){
*retstr = '_';
} else {
*retstr = tolower(*str);
*retstr = tolower((unsigned char)*str);
}
str++;
retstr++;
+2 -2
View File
@@ -629,7 +629,7 @@ static char *php_mb_rfc1867_getword(const zend_encoding *encoding, char **line,
static char *php_mb_rfc1867_getword_conf(const zend_encoding *encoding, char *str) /* {{{ */
{
while (*str && isspace(*(unsigned char *)str)) {
while (*str && isspace((unsigned char)*str)) {
++str;
}
@@ -645,7 +645,7 @@ static char *php_mb_rfc1867_getword_conf(const zend_encoding *encoding, char *st
} else {
char *strend = str;
while (*strend && !isspace(*(unsigned char *)strend)) {
while (*strend && !isspace((unsigned char)*strend)) {
++strend;
}
return php_mb_rfc1867_substring_conf(encoding, str, strend - str, 0);
+1 -1
View File
@@ -784,7 +784,7 @@ static inline void mb_regex_substitute(
continue;
}
if (name_end[0] == delim) break;
if (maybe_num && !isdigit(name_end[0])) maybe_num = 0;
if (maybe_num && !isdigit((unsigned char)name_end[0])) maybe_num = 0;
name_end++;
}
p = name_end + 1;
+2 -2
View File
@@ -634,7 +634,7 @@ PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache_ex(zend_string *regex, in
/* Parse through the leading whitespace, and display a warning if we
get to the end without encountering a delimiter. */
while (isspace((int)*(unsigned char *)p)) p++;
while (isspace((unsigned char)*p)) p++;
if (p >= end_p) {
if (key != regex) {
zend_string_release_ex(key, 0);
@@ -647,7 +647,7 @@ PHPAPI pcre_cache_entry* pcre_get_compiled_regex_cache_ex(zend_string *regex, in
/* Get the delimiter and display a warning if it is alphanumeric
or a backslash. */
delimiter = *p++;
if (isalnum((int)*(unsigned char *)&delimiter) || delimiter == '\\' || delimiter == '\0') {
if (isalnum((unsigned char)delimiter) || delimiter == '\\' || delimiter == '\0') {
if (key != regex) {
zend_string_release_ex(key, 0);
}
+1 -1
View File
@@ -229,7 +229,7 @@ PDO_API int php_pdo_parse_data_source(const char *data_source, zend_ulong data_s
}
}
while (i < data_source_len && isspace(data_source[i])) {
while (i < data_source_len && isspace((unsigned char)data_source[i])) {
i++;
}
+1 -1
View File
@@ -105,7 +105,7 @@ PDO_API int pdo_parse_params(pdo_stmt_t *stmt, zend_string *inquery, zend_string
if (t == PDO_PARSER_BIND) {
ptrdiff_t len = s.cur - s.tok;
if ((ZSTR_VAL(inquery) < (s.cur - len)) && isalnum(*(s.cur - len - 1))) {
if ((ZSTR_VAL(inquery) < (s.cur - len)) && isalnum((unsigned char)s.cur[-len - 1])) {
continue;
}
query_type |= PDO_PLACEHOLDER_NAMED;
+1 -1
View File
@@ -148,7 +148,7 @@ bool pdo_stmt_describe_columns(pdo_stmt_t *stmt) /* {{{ */
stmt->columns[col].name = zend_string_separate(orig_name, 0);
char *s = ZSTR_VAL(stmt->columns[col].name);
while (*s != '\0') {
*s = toupper(*s);
*s = toupper((unsigned char)*s);
s++;
}
break;
+1 -1
View File
@@ -93,7 +93,7 @@ PHPAPI void *php_load_shlib(const char *path, char **errp)
size_t i = strlen(err);
(*errp)=estrdup(err);
php_win32_error_msg_free(err);
while (i > 0 && isspace((*errp)[i-1])) { (*errp)[i-1] = '\0'; i--; }
while (i > 0 && isspace((unsigned char)(*errp)[i-1])) { (*errp)[i-1] = '\0'; i--; }
} else {
(*errp) = estrdup("<No message>");
}
+1 -1
View File
@@ -83,7 +83,7 @@ PHP_MINIT_FUNCTION(exec)
static size_t strip_trailing_whitespace(char *buf, size_t bufl) {
size_t l = bufl;
while (l-- > 0 && isspace(((unsigned char *)buf)[l]));
while (l-- > 0 && isspace((unsigned char)buf[l]));
if (l != (bufl - 1)) {
bufl = l + 1;
buf[bufl] = '\0';
+1 -1
View File
@@ -1968,7 +1968,7 @@ PHPAPI HashTable *php_fgetcsv(php_stream *stream, char delimiter, char enclosure
inc_len = (bptr < limit ? (*bptr == '\0' ? 1 : php_mblen(bptr, limit - bptr)): 0);
if (inc_len == 1) {
char *tmp = bptr;
while ((*tmp != delimiter) && isspace((int)*(unsigned char *)tmp)) {
while ((*tmp != delimiter) && isspace((unsigned char)*tmp)) {
tmp++;
}
if (*tmp == enclosure && tmp < limit) {
+1 -1
View File
@@ -958,7 +958,7 @@ static php_conv_err_t php_conv_qprint_decode_convert(php_conv_qprint_decode *ins
goto out;
}
if (!isxdigit((int) *ps)) {
if (!isxdigit(*ps)) {
err = PHP_CONV_ERR_INVALID_SEQ;
goto out;
}
+4 -4
View File
@@ -378,7 +378,7 @@ php_sprintf_getnumber(char **buffer, size_t *len)
int php_sprintf_get_argnum(char **format, size_t *format_len) {
char *temppos = *format;
while (isdigit((int) *temppos)) temppos++;
while (isdigit((unsigned char)*temppos)) temppos++;
if (*temppos != '$') {
return ARG_NUM_NEXT;
}
@@ -470,7 +470,7 @@ php_formatted_print(char *format, size_t format_len, zval *args, int argc, int n
PRINTF_DEBUG(("sprintf: first looking at '%c', inpos=%zu\n",
*format, format - format_orig));
if (isalpha((int)*format)) {
if (isalpha((unsigned char)*format)) {
width = precision = 0;
argnum = ARG_NUM_NEXT;
} else {
@@ -539,7 +539,7 @@ php_formatted_print(char *format, size_t format_len, zval *args, int argc, int n
}
width = Z_LVAL_P(tmp);
adjusting |= ADJ_WIDTH;
} else if (isdigit((int)*format)) {
} else if (isdigit((unsigned char)*format)) {
PRINTF_DEBUG(("sprintf: getting width\n"));
if ((width = php_sprintf_getnumber(&format, &format_len)) < 0) {
zend_value_error("Width must be between 0 and %d", INT_MAX);
@@ -584,7 +584,7 @@ php_formatted_print(char *format, size_t format_len, zval *args, int argc, int n
precision = Z_LVAL_P(tmp);
adjusting |= ADJ_PRECISION;
expprec = 1;
} else if (isdigit((int)*format)) {
} else if (isdigit((unsigned char)*format)) {
if ((precision = php_sprintf_getnumber(&format, &format_len)) < 0) {
zend_value_error("Precision must be between 0 and %d", INT_MAX);
goto fail;
+6 -6
View File
@@ -78,8 +78,8 @@ static inline int get_ftp_result(php_stream *stream, char *buffer, size_t buffer
{
buffer[0] = '\0'; /* in case read fails to read anything */
while (php_stream_gets(stream, buffer, buffer_size-1) &&
!(isdigit((int) buffer[0]) && isdigit((int) buffer[1]) &&
isdigit((int) buffer[2]) && buffer[3] == ' '));
!(isdigit((unsigned char)buffer[0]) && isdigit((unsigned char)buffer[1]) &&
isdigit((unsigned char)buffer[2]) && buffer[3] == ' '));
return strtol(buffer, NULL, 10);
}
/* }}} */
@@ -228,7 +228,7 @@ static php_stream *php_ftp_fopen_connect(php_stream_wrapper *wrapper, const char
#define PHP_FTP_CNTRL_CHK(val, val_len, err_msg) { \
unsigned char *s = (unsigned char *) val, *e = (unsigned char *) s + val_len; \
while (s < e) { \
if (iscntrl(*s)) { \
if (iscntrl((unsigned char)*s)) { \
php_stream_wrapper_log_error(wrapper, options, err_msg, val); \
goto connect_errexit; \
} \
@@ -337,14 +337,14 @@ static unsigned short php_fopen_do_pasv(php_stream *stream, char *ip, size_t ip_
/* parse pasv command (129, 80, 95, 25, 13, 221) */
tpath = tmp_line;
/* skip over the "227 Some message " part */
for (tpath += 4; *tpath && !isdigit((int) *tpath); tpath++);
for (tpath += 4; *tpath && !isdigit((unsigned char)*tpath); tpath++);
if (!*tpath) {
return 0;
}
/* skip over the host ip, to get the port */
hoststart = tpath;
for (i = 0; i < 4; i++) {
for (; isdigit((int) *tpath); tpath++);
for (; isdigit((unsigned char)*tpath); tpath++);
if (*tpath != ',') {
return 0;
}
@@ -825,7 +825,7 @@ static int php_stream_ftp_url_stat(php_stream_wrapper *wrapper, const char *url,
struct tm tm, tmbuf, *gmt;
time_t stamp;
while ((size_t)(p - tmp_line) < sizeof(tmp_line) && !isdigit(*p)) {
while ((size_t)(p - tmp_line) < sizeof(tmp_line) && !isdigit((unsigned char)*p)) {
p++;
}
+2 -2
View File
@@ -682,8 +682,8 @@ static inline int process_numeric_entity(const char **buf, unsigned *code_point)
/* strtol allows whitespace and other stuff in the beginning
* we're not interested */
if ((hexadecimal && !isxdigit(**buf)) ||
(!hexadecimal && !isdigit(**buf))) {
if ((hexadecimal && !isxdigit((unsigned char)**buf)) ||
(!hexadecimal && !isdigit((unsigned char)**buf))) {
return FAILURE;
}
+3 -3
View File
@@ -726,9 +726,9 @@ PHPAPI void _php_math_basetozval(zend_string *str, int base, zval *ret)
e = s + ZSTR_LEN(str);
/* Skip leading whitespace */
while (s < e && isspace(*s)) s++;
while (s < e && isspace((unsigned char)*s)) s++;
/* Skip trailing whitespace */
while (s < e && isspace(*(e-1))) e--;
while (s < e && isspace((unsigned char)e[-1])) e--;
if (e - s >= 2) {
if (base == 16 && s[0] == '0' && (s[1] == 'x' || s[1] == 'X')) s += 2;
@@ -1030,7 +1030,7 @@ PHPAPI zend_string *_php_math_number_format_ex(double d, int dec, const char *de
tmpbuf = strpprintf(0, "%.*F", dec, d);
if (tmpbuf == NULL) {
return NULL;
} else if (!isdigit((int)ZSTR_VAL(tmpbuf)[0])) {
} else if (!isdigit((unsigned char)ZSTR_VAL(tmpbuf)[0])) {
return tmpbuf;
}
+6 -6
View File
@@ -80,7 +80,7 @@ static const char _codes[26] =
/* Note: these functions require an uppercase letter input! */
static zend_always_inline char encode(char c) {
if (isalpha(c)) {
if (isalpha((unsigned char)c)) {
ZEND_ASSERT(c >= 'A' && c <= 'Z');
return _codes[(c - 'A')];
} else {
@@ -109,7 +109,7 @@ static zend_always_inline char encode(char c) {
/* I suppose I could have been using a character pointer instead of
* accesssing the array directly... */
#define Convert_Raw(c) toupper(c)
#define Convert_Raw(c) toupper((unsigned char)c)
/* Look at the next letter in the word */
#define Read_Raw_Next_Letter (word[w_idx+1])
#define Read_Next_Letter (Convert_Raw(Read_Raw_Next_Letter))
@@ -123,7 +123,7 @@ static zend_always_inline char encode(char c) {
/* Look two letters down. It makes sure you don't walk off the string. */
#define Read_After_Next_Letter (Read_Raw_Next_Letter != '\0' ? Convert_Raw(word[w_idx+2]) \
: '\0')
#define Look_Ahead_Letter(n) (toupper(Lookahead((char *) word+w_idx, n)))
#define Look_Ahead_Letter(n) (toupper((unsigned char)Lookahead((char *) word+w_idx, n)))
/* Allows us to safely look ahead an arbitrary # of letters */
@@ -165,7 +165,7 @@ static char Lookahead(char *word, size_t how_far)
#define Phone_Len (p_idx)
/* Note is a letter is a 'break' in the word */
#define Isbreak(c) (!isalpha(c))
#define Isbreak(c) (!isalpha((unsigned char)(c)))
/* {{{ metaphone */
static void metaphone(unsigned char *word, size_t word_len, zend_long max_phonemes, zend_string **phoned_word, int traditional)
@@ -189,7 +189,7 @@ static void metaphone(unsigned char *word, size_t word_len, zend_long max_phonem
/*-- The first phoneme has to be processed specially. --*/
/* Find our first letter */
for (; !isalpha(curr_letter = Read_Raw_Curr_Letter); w_idx++) {
for (; !isalpha((unsigned char)(curr_letter = Read_Raw_Curr_Letter)); w_idx++) {
/* On the off chance we were given nothing but crap... */
if (curr_letter == '\0') {
End_Phoned_Word();
@@ -277,7 +277,7 @@ static void metaphone(unsigned char *word, size_t word_len, zend_long max_phonem
*/
/* Ignore non-alphas */
if (!isalpha(curr_letter))
if (!isalpha((unsigned char)curr_letter))
continue;
curr_letter = Convert_Raw(curr_letter);
+4 -4
View File
@@ -216,11 +216,11 @@ PHP_FUNCTION(quoted_printable_decode)
switch (str_in[i]) {
case '=':
if (str_in[i + 1] && str_in[i + 2] &&
isxdigit((int) str_in[i + 1]) &&
isxdigit((int) str_in[i + 2]))
isxdigit((unsigned char)str_in[i + 1]) &&
isxdigit((unsigned char)str_in[i + 2]))
{
ZSTR_VAL(str_out)[j++] = (php_hex2int((int) str_in[i + 1]) << 4)
+ php_hex2int((int) str_in[i + 2]);
ZSTR_VAL(str_out)[j++] = (php_hex2int((unsigned char)str_in[i + 1]) << 4)
+ php_hex2int((unsigned char)str_in[i + 2]);
i += 3;
} else /* check for soft line break according to RFC 2045*/ {
k = 1;
+5 -5
View File
@@ -345,7 +345,7 @@ PHPAPI int ValidateFormat(char *format, int numVars, int *totalSubs)
goto xpgCheckDone;
}
if ( isdigit( (int)*ch ) ) {
if ( isdigit( (unsigned char)*ch ) ) {
/*
* Check for an XPG3-style %n$ specification. Note: there
* must not be a mixture of XPG3 specs and non-XPG3 specs
@@ -656,9 +656,9 @@ PHPAPI int php_sscanf_internal( char *string, char *format,
/*
* If we see whitespace in the format, skip whitespace in the string.
*/
if ( isspace( (int)*ch ) ) {
if ( isspace( (unsigned char)*ch ) ) {
sch = *string;
while ( isspace( (int)sch ) ) {
while ( isspace( (unsigned char)sch ) ) {
if (*string == '\0') {
goto done;
}
@@ -809,7 +809,7 @@ literal:
if (!(flags & SCAN_NOSKIP)) {
while (*string != '\0') {
sch = *string;
if (! isspace((int)sch) ) {
if (! isspace((unsigned char)sch) ) {
break;
}
string++;
@@ -835,7 +835,7 @@ literal:
end = string;
while (*end != '\0') {
sch = *end;
if ( isspace( (int)sch ) ) {
if ( isspace( (unsigned char)sch ) ) {
break;
}
end++;
+1 -1
View File
@@ -67,7 +67,7 @@ PHP_FUNCTION(soundex)
/* BUG: should also map here accented letters used in non */
/* English words or names (also found in English text!): */
/* esstsett, thorn, n-tilde, c-cedilla, s-caron, ... */
code = toupper((int)(unsigned char)str[i]);
code = toupper((unsigned char)str[i]);
if (code >= 'A' && code <= 'Z') {
if (_small == 0) {
/* remember first valid char */
+7 -7
View File
@@ -3486,9 +3486,9 @@ PHPAPI void php_stripcslashes(zend_string *str)
case 'f': *target++='\f'; nlen--; break;
case '\\': *target++='\\'; nlen--; break;
case 'x':
if (source+1 < end && isxdigit((int)(*(source+1)))) {
if (source+1 < end && isxdigit((unsigned char)source[1])) {
numtmp[0] = *++source;
if (source+1 < end && isxdigit((int)(*(source+1)))) {
if (source+1 < end && isxdigit((unsigned char)source[1])) {
numtmp[1] = *++source;
numtmp[2] = '\0';
nlen-=3;
@@ -4312,7 +4312,7 @@ PHP_FUNCTION(hebrev)
do {
if (block_type == _HEB_BLOCK_TYPE_HEB) {
while ((isheb((int)*(tmp+1)) || _isblank((int)*(tmp+1)) || ispunct((int)*(tmp+1)) || (int)*(tmp+1)=='\n' ) && block_end<str_len-1) {
while ((isheb((int)*(tmp+1)) || _isblank((int)*(tmp+1)) || ispunct((unsigned char)tmp[1]) || (int)*(tmp+1)=='\n' ) && block_end<str_len-1) {
tmp++;
block_end++;
}
@@ -4360,7 +4360,7 @@ PHP_FUNCTION(hebrev)
tmp++;
block_end++;
}
while ((_isblank((int)*tmp) || ispunct((int)*tmp)) && *tmp!='/' && *tmp!='-' && block_end > block_start) {
while ((_isblank((int)*tmp) || ispunct((unsigned char)*tmp)) && *tmp!='/' && *tmp!='-' && block_end > block_start) {
tmp--;
block_end--;
}
@@ -4743,7 +4743,7 @@ static bool php_tag_find(char *tag, size_t len, const char *set) {
done =1;
break;
default:
if (!isspace((int)c)) {
if (!isspace((unsigned char)c)) {
if (state == 0) {
state=1;
}
@@ -4833,7 +4833,7 @@ state_0:
if (in_q) {
break;
}
if (isspace(*(p + 1)) && !allow_tag_spaces) {
if (isspace((unsigned char)p[1]) && !allow_tag_spaces) {
*(rp++) = c;
break;
}
@@ -4880,7 +4880,7 @@ state_1:
if (in_q) {
break;
}
if (isspace(*(p + 1)) && !allow_tag_spaces) {
if (isspace((unsigned char)p[1]) && !allow_tag_spaces) {
goto reg_char_1;
}
depth++;
+15 -15
View File
@@ -40,12 +40,12 @@ compare_right(char const **a, char const *aend, char const **b, char const *bend
both numbers to know that they have the same magnitude, so we
remember it in BIAS. */
for(;; (*a)++, (*b)++) {
if ((*a == aend || !isdigit((int)(unsigned char)**a)) &&
(*b == bend || !isdigit((int)(unsigned char)**b)))
if ((*a == aend || !isdigit((unsigned char)**a)) &&
(*b == bend || !isdigit((unsigned char)**b)))
return bias;
else if (*a == aend || !isdigit((int)(unsigned char)**a))
else if (*a == aend || !isdigit((unsigned char)**a))
return -1;
else if (*b == bend || !isdigit((int)(unsigned char)**b))
else if (*b == bend || !isdigit((unsigned char)**b))
return +1;
else if (**a < **b) {
if (!bias)
@@ -67,12 +67,12 @@ compare_left(char const **a, char const *aend, char const **b, char const *bend)
/* Compare two left-aligned numbers: the first to have a
different value wins. */
for(;; (*a)++, (*b)++) {
if ((*a == aend || !isdigit((int)(unsigned char)**a)) &&
(*b == bend || !isdigit((int)(unsigned char)**b)))
if ((*a == aend || !isdigit((unsigned char)**a)) &&
(*b == bend || !isdigit((unsigned char)**b)))
return 0;
else if (*a == aend || !isdigit((int)(unsigned char)**a))
else if (*a == aend || !isdigit((unsigned char)**a))
return -1;
else if (*b == bend || !isdigit((int)(unsigned char)**b))
else if (*b == bend || !isdigit((unsigned char)**b))
return +1;
else if (**a < **b)
return -1;
@@ -103,27 +103,27 @@ PHPAPI int strnatcmp_ex(char const *a, size_t a_len, char const *b, size_t b_len
ca = *ap; cb = *bp;
/* skip over leading zeros */
while (ca == '0' && (ap+1 < aend) && isdigit((int)(unsigned char)*(ap+1))) {
while (ca == '0' && (ap+1 < aend) && isdigit((unsigned char)ap[1])) {
ca = *++ap;
}
while (cb == '0' && (bp+1 < bend) && isdigit((int)(unsigned char)*(bp+1))) {
while (cb == '0' && (bp+1 < bend) && isdigit((unsigned char)bp[1])) {
cb = *++bp;
}
while (1) {
/* Skip consecutive whitespace */
while (isspace((int)(unsigned char)ca)) {
while (isspace(ca)) {
ca = *++ap;
}
while (isspace((int)(unsigned char)cb)) {
while (isspace(cb)) {
cb = *++bp;
}
/* process run of digits */
if (isdigit((int)(unsigned char)ca) && isdigit((int)(unsigned char)cb)) {
if (isdigit(ca) && isdigit(cb)) {
fractional = (ca == '0' || cb == '0');
if (fractional)
@@ -147,8 +147,8 @@ PHPAPI int strnatcmp_ex(char const *a, size_t a_len, char const *b, size_t b_len
}
if (is_case_insensitive) {
ca = toupper((int)(unsigned char)ca);
cb = toupper((int)(unsigned char)cb);
ca = toupper(ca);
cb = toupper(cb);
}
if (ca < cb)
+1 -1
View File
@@ -161,7 +161,7 @@ PHP_FUNCTION(intval)
char *strval = Z_STRVAL_P(num);
size_t strlen = Z_STRLEN_P(num);
while (isspace(*strval) && strlen) {
while (isspace((unsigned char)*strval) && strlen) {
strval++;
strlen--;
}
+10 -10
View File
@@ -117,7 +117,7 @@ PHPAPI php_url *php_url_parse_ex2(char const *str, size_t length, bool *has_port
p = s;
while (p < e) {
/* scheme = 1*[ lowalpha | digit | "+" | "-" | "." ] */
if (!isalpha(*p) && !isdigit(*p) && *p != '+' && *p != '.' && *p != '-') {
if (!isalpha((unsigned char)*p) && !isdigit((unsigned char)*p) && *p != '+' && *p != '.' && *p != '-') {
if (e + 1 < ue && e < binary_strcspn(s, ue, "?#")) {
goto parse_port;
} else if (s + 1 < ue && *s == '/' && *(s + 1) == '/') { /* relative-scheme URL */
@@ -146,7 +146,7 @@ PHPAPI php_url *php_url_parse_ex2(char const *str, size_t length, bool *has_port
* correctly parse things like a.com:80
*/
p = e + 1;
while (p < ue && isdigit(*p)) {
while (p < ue && isdigit((unsigned char)*p)) {
p++;
}
@@ -186,7 +186,7 @@ PHPAPI php_url *php_url_parse_ex2(char const *str, size_t length, bool *has_port
p = e + 1;
pp = p;
while (pp < ue && pp - p < 6 && isdigit(*pp)) {
while (pp < ue && pp - p < 6 && isdigit((unsigned char)*pp)) {
pp++;
}
@@ -429,12 +429,12 @@ static int php_htoi(char *s)
int value;
int c;
c = ((unsigned char *)s)[0];
c = (unsigned char)s[0];
if (isupper(c))
c = tolower(c);
value = (c >= '0' && c <= '9' ? c - '0' : c - 'a' + 10) * 16;
c = ((unsigned char *)s)[1];
c = (unsigned char)s[1];
if (isupper(c))
c = tolower(c);
value += c >= '0' && c <= '9' ? c - '0' : c - 'a' + 10;
@@ -601,8 +601,8 @@ PHPAPI size_t php_url_decode(char *str, size_t len)
if (*data == '+') {
*dest = ' ';
}
else if (*data == '%' && len >= 2 && isxdigit((int) *(data + 1))
&& isxdigit((int) *(data + 2))) {
else if (*data == '%' && len >= 2 && isxdigit((unsigned char)data[1])
&& isxdigit((unsigned char)data[2])) {
*dest = (char) php_htoi(data + 1);
data += 2;
len -= 2;
@@ -660,8 +660,8 @@ PHPAPI size_t php_raw_url_decode(char *str, size_t len)
char *data = str;
while (len--) {
if (*data == '%' && len >= 2 && isxdigit((int) *(data + 1))
&& isxdigit((int) *(data + 2))) {
if (*data == '%' && len >= 2 && isxdigit((unsigned char)data[1])
&& isxdigit((unsigned char)data[2])) {
*dest = (char) php_htoi(data + 1);
data += 2;
len -= 2;
@@ -722,7 +722,7 @@ no_name_header:
c = *p;
*p = '\0';
s = p + 1;
while (isspace((int)*(unsigned char *)s)) {
while (isspace((unsigned char)*s)) {
s++;
}
+3 -3
View File
@@ -85,7 +85,7 @@ static int php_ini_on_update_tags(zend_ini_entry *entry, zend_string *new_value,
*val++ = '\0';
for (q = key; *q; q++) {
*q = tolower(*q);
*q = tolower((unsigned char)*q);
}
keylen = q - key;
str = zend_string_init(key, keylen, 1);
@@ -134,7 +134,7 @@ static int php_ini_on_update_hosts(zend_ini_entry *entry, zend_string *new_value
char *q;
for (q = key; *q; q++) {
*q = tolower(*q);
*q = tolower((unsigned char)*q);
}
keylen = q - key;
if (keylen > 0) {
@@ -456,7 +456,7 @@ static inline void handle_tag(STD_PARA)
}
smart_str_appendl(&ctx->tag, start, YYCURSOR - start);
for (i = 0; i < ZSTR_LEN(ctx->tag.s); i++)
ZSTR_VAL(ctx->tag.s)[i] = tolower((int)(unsigned char)ZSTR_VAL(ctx->tag.s)[i]);
ZSTR_VAL(ctx->tag.s)[i] = tolower((unsigned char)ZSTR_VAL(ctx->tag.s)[i]);
/* intentionally using str_find here, in case the hash value is set, but the string val is changed later */
if ((ctx->lookup_data = zend_hash_str_find_ptr(ctx->tags, ZSTR_VAL(ctx->tag.s), ZSTR_LEN(ctx->tag.s))) != NULL) {
ok = 1;
+8 -8
View File
@@ -45,8 +45,8 @@ php_canonicalize_version(const char *version)
* s/([^\d\.])([^\D\.])/$1.$2/g;
* s/([^\D\.])([^\d\.])/$1.$2/g;
*/
#define isdig(x) (isdigit(x)&&(x)!='.')
#define isndig(x) (!isdigit(x)&&(x)!='.')
#define isdig(x) (isdigit((unsigned char)(x))&&(x)!='.')
#define isndig(x) (!isdigit((unsigned char)(x))&&(x)!='.')
#define isspecialver(x) ((x)=='-'||(x)=='_'||(x)=='+')
lq = *(q - 1);
@@ -59,7 +59,7 @@ php_canonicalize_version(const char *version)
*q++ = '.';
}
*q++ = *p;
} else if (!isalnum(*p)) {
} else if (!isalnum((unsigned char)*p)) {
if (lq != '.') {
*q++ = '.';
}
@@ -152,17 +152,17 @@ php_version_compare(const char *orig_ver1, const char *orig_ver2)
if ((n2 = strchr(p2, '.')) != NULL) {
*n2 = '\0';
}
if (isdigit(*p1) && isdigit(*p2)) {
if (isdigit((unsigned char)*p1) && isdigit((unsigned char)*p2)) {
/* compare element numerically */
l1 = strtol(p1, NULL, 10);
l2 = strtol(p2, NULL, 10);
compare = ZEND_NORMALIZE_BOOL(l1 - l2);
} else if (!isdigit(*p1) && !isdigit(*p2)) {
} else if (!isdigit((unsigned char)*p1) && !isdigit((unsigned char)*p2)) {
/* compare element names */
compare = compare_special_version_forms(p1, p2);
} else {
/* mix of names and numbers */
if (isdigit(*p1)) {
if (isdigit((unsigned char)*p1)) {
compare = compare_special_version_forms("#N#", p2);
} else {
compare = compare_special_version_forms(p1, "#N#");
@@ -180,13 +180,13 @@ php_version_compare(const char *orig_ver1, const char *orig_ver2)
}
if (compare == 0) {
if (n1 != NULL) {
if (isdigit(*p1)) {
if (isdigit((unsigned char)*p1)) {
compare = 1;
} else {
compare = php_version_compare(p1, "#N#");
}
} else if (n2 != NULL) {
if (isdigit(*p2)) {
if (isdigit((unsigned char)*p2)) {
compare = -1;
} else {
compare = php_version_compare("#N#", p2);
+3 -3
View File
@@ -193,7 +193,7 @@ static void sapi_read_post_data(void)
*p = 0;
break;
default:
*p = tolower(*p);
*p = tolower((unsigned char)*p);
break;
}
}
@@ -715,10 +715,10 @@ SAPI_API int sapi_header_op(sapi_header_op_enum op, void *arg)
}
/* cut off trailing spaces, linefeeds and carriage-returns */
if (header_line_len && isspace(header_line[header_line_len-1])) {
if (header_line_len && isspace((unsigned char)header_line[header_line_len - 1])) {
do {
header_line_len--;
} while(header_line_len && isspace(header_line[header_line_len-1]));
} while(header_line_len && isspace((unsigned char)header_line[header_line_len - 1]));
header_line[header_line_len]='\0';
}
+3 -3
View File
@@ -511,7 +511,7 @@ PHPAPI zend_string *php_resolve_path(const char *filename, size_t filename_lengt
}
/* Don't resolve paths which contain protocol (except of file://) */
for (p = filename; isalnum((int)*p) || *p == '+' || *p == '-' || *p == '.'; p++);
for (p = filename; isalnum((unsigned char)*p) || *p == '+' || *p == '-' || *p == '.'; p++);
if ((*p == ':') && (p - filename > 1) && (p[1] == '/') && (p[2] == '/')) {
wrapper = php_stream_locate_url_wrapper(filename, &actual_path, STREAM_OPEN_FOR_INCLUDE);
if (wrapper == &php_plain_files_wrapper) {
@@ -543,7 +543,7 @@ PHPAPI zend_string *php_resolve_path(const char *filename, size_t filename_lengt
/* Check for stream wrapper */
int is_stream_wrapper = 0;
for (p = ptr; isalnum((int)*p) || *p == '+' || *p == '-' || *p == '.'; p++);
for (p = ptr; isalnum((unsigned char)*p) || *p == '+' || *p == '-' || *p == '.'; p++);
if ((*p == ':') && (p - ptr > 1) && (p[1] == '/') && (p[2] == '/')) {
/* .:// or ..:// is not a stream wrapper */
if (p[-1] != '.' || p[-2] != '.' || p - 2 != ptr) {
@@ -618,7 +618,7 @@ PHPAPI zend_string *php_resolve_path(const char *filename, size_t filename_lengt
actual_path = trypath;
/* Check for stream wrapper */
for (p = trypath; isalnum((int)*p) || *p == '+' || *p == '-' || *p == '.'; p++);
for (p = trypath; isalnum((unsigned char)*p) || *p == '+' || *p == '-' || *p == '.'; p++);
if ((*p == ':') && (p - trypath > 1) && (p[1] == '/') && (p[2] == '/')) {
wrapper = php_stream_locate_url_wrapper(trypath, &actual_path, STREAM_OPEN_FOR_INCLUDE);
if (!wrapper) {
+1 -1
View File
@@ -40,7 +40,7 @@
char *tmp = path; \
while (*tmp) { \
if (*tmp == '\\') *tmp = '/'; \
else *tmp = tolower(*tmp); \
else *tmp = tolower((unsigned char)*tmp); \
tmp++; \
} \
}
+1 -1
View File
@@ -67,7 +67,7 @@ PHPAPI void php_ini_builder_define(struct php_ini_builder *b, const char *arg)
if (val != NULL) {
val++;
if (!isalnum(*val) && *val != '"' && *val != '\'' && *val != '\0') {
if (!isalnum((unsigned char)*val) && *val != '"' && *val != '\'' && *val != '\0') {
php_ini_builder_quoted(b, arg, val - arg - 1, val, arg + len - val);
} else {
php_ini_builder_realloc(b, len + strlen("\n"));
+2 -2
View File
@@ -220,7 +220,7 @@ PHPAPI void php_register_variable_ex(const char *var_name, zval *val, zval *trac
ip++;
index_s = ip;
if (isspace(*ip)) {
if (isspace((unsigned char)*ip)) {
ip++;
}
if (*ip==']') {
@@ -543,7 +543,7 @@ SAPI_API SAPI_TREAT_DATA_FUNC(php_default_treat_data)
if (arg == PARSE_COOKIE) {
/* Remove leading spaces from cookie names, needed for multi-cookie header where ; can be followed by a space */
while (isspace(*var)) {
while (isspace((unsigned char)*var)) {
var++;
}
if (var == val || *var == '\0') {
+6 -6
View File
@@ -391,7 +391,7 @@ static int multipart_buffer_headers(multipart_buffer *self, zend_llist *header)
}
/* space in the beginning means same header */
if (!isspace(line[0])) {
if (!isspace((unsigned char)line[0])) {
value = strchr(line, ':');
}
@@ -407,7 +407,7 @@ static int multipart_buffer_headers(multipart_buffer *self, zend_llist *header)
}
*value = '\0';
do { value++; } while (isspace(*value));
do { value++; } while (isspace((unsigned char)*value));
key = estrdup(line);
smart_string_appends(&buf_value, value);
@@ -504,7 +504,7 @@ static char *substring_conf(char *start, int len, char quote)
static char *php_ap_getword_conf(const zend_encoding *encoding, char *str)
{
while (*str && isspace(*str)) {
while (*str && isspace((unsigned char)*str)) {
++str;
}
@@ -520,7 +520,7 @@ static char *php_ap_getword_conf(const zend_encoding *encoding, char *str)
} else {
char *strend = str;
while (*strend && !isspace(*strend)) {
while (*strend && !isspace((unsigned char)*strend)) {
++strend;
}
return substring_conf(str, strend - str, 0);
@@ -787,7 +787,7 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler) /* {{{ */
goto fileupload_done;
}
while (isspace(*cd)) {
while (isspace((unsigned char)*cd)) {
++cd;
}
@@ -795,7 +795,7 @@ SAPI_API SAPI_POST_HANDLER_FUNC(rfc1867_post_handler) /* {{{ */
{
char *key = NULL, *word = pair;
while (isspace(*cd)) {
while (isspace((unsigned char)*cd)) {
++cd;
}
+7 -7
View File
@@ -288,7 +288,7 @@ PHPAPI char * php_conv_fp(char format, double num,
/*
* Check for Infinity and NaN
*/
if (isalpha((int)*p)) {
if (isalpha((unsigned char)*p)) {
*len = strlen(p);
memcpy(buf, p, *len + 1);
*is_negative = false;
@@ -435,11 +435,11 @@ typedef struct buf_area buffy;
#define NUM( c ) ( c - '0' )
#define STR_TO_DEC( str, num ) \
num = NUM( *str++ ) ; \
while ( isdigit((int)*str ) ) \
num = NUM( *(str)++ ) ; \
while ( isdigit((unsigned char)*(str) ) ) \
{ \
num *= 10 ; \
num += NUM( *str++ ) ; \
num += NUM( *(str)++ ) ; \
}
/*
@@ -533,7 +533,7 @@ static size_t format_converter(buffy * odp, const char *fmt, va_list ap) /* {{{
/*
* Try to avoid checking for flags, width or precision
*/
if (isascii((int)*fmt) && !islower((int)*fmt)) {
if (isascii((unsigned char)*fmt) && !islower((unsigned char)*fmt)) {
/*
* Recognize flags: -, #, BLANK, +
*/
@@ -555,7 +555,7 @@ static size_t format_converter(buffy * odp, const char *fmt, va_list ap) /* {{{
/*
* Check if a width was specified
*/
if (isdigit((int)*fmt)) {
if (isdigit((unsigned char)*fmt)) {
STR_TO_DEC(fmt, min_width);
adjust_width = true;
} else if (*fmt == '*') {
@@ -575,7 +575,7 @@ static size_t format_converter(buffy * odp, const char *fmt, va_list ap) /* {{{
if (*fmt == '.') {
adjust_precision = true;
fmt++;
if (isdigit((int)*fmt)) {
if (isdigit((unsigned char)*fmt)) {
STR_TO_DEC(fmt, precision);
} else if (*fmt == '*') {
precision = va_arg(ap, int);
+7 -7
View File
@@ -148,12 +148,12 @@
#define NUM(c) (c - '0')
#define STR_TO_DEC(str, num) do { \
num = NUM(*str++); \
while (isdigit((int)*str)) { \
num = NUM(*(str)++); \
while (isdigit((unsigned char)*(str))) {\
num *= 10; \
num += NUM(*str++); \
num += NUM(*(str)++); \
if (num >= INT_MAX / 10) { \
while (isdigit((int)*str++)); \
while (isdigit((unsigned char)*(str)++)); \
break; \
} \
} \
@@ -233,7 +233,7 @@ static void xbuf_format_converter(void *xbuf, bool is_char, const char *fmt, va_
/*
* Try to avoid checking for flags, width or precision
*/
if (isascii((int)*fmt) && !islower((int)*fmt)) {
if (isascii((unsigned char)*fmt) && !islower((unsigned char)*fmt)) {
/*
* Recognize flags: -, #, BLANK, +
*/
@@ -255,7 +255,7 @@ static void xbuf_format_converter(void *xbuf, bool is_char, const char *fmt, va_
/*
* Check if a width was specified
*/
if (isdigit((int)*fmt)) {
if (isdigit((unsigned char)*fmt)) {
STR_TO_DEC(fmt, min_width);
adjust_width = true;
} else if (*fmt == '*') {
@@ -275,7 +275,7 @@ static void xbuf_format_converter(void *xbuf, bool is_char, const char *fmt, va_
if (*fmt == '.') {
adjust_precision = true;
fmt++;
if (isdigit((int)*fmt)) {
if (isdigit((unsigned char)*fmt)) {
STR_TO_DEC(fmt, precision);
} else if (*fmt == '*') {
precision = va_arg(ap, int);
+2 -2
View File
@@ -1923,7 +1923,7 @@ static inline zend_result php_stream_wrapper_scheme_validate(const char *protoco
unsigned int i;
for(i = 0; i < protocol_len; i++) {
if (!isalnum((int)protocol[i]) &&
if (!isalnum((unsigned char)protocol[i]) &&
protocol[i] != '+' &&
protocol[i] != '-' &&
protocol[i] != '.') {
@@ -2003,7 +2003,7 @@ PHPAPI php_stream_wrapper *php_stream_locate_url_wrapper(const char *path, const
return (php_stream_wrapper*)((options & STREAM_LOCATE_WRAPPERS_ONLY) ? NULL : &php_plain_files_wrapper);
}
for (p = path; isalnum((int)*p) || *p == '+' || *p == '-' || *p == '.'; p++) {
for (p = path; isalnum((unsigned char)*p) || *p == '+' || *p == '-' || *p == '.'; p++) {
n++;
}
+1 -1
View File
@@ -95,7 +95,7 @@ PHPAPI php_stream *_php_stream_xport_create(const char *name, size_t namelen, in
}
orig_path = name;
for (p = name; isalnum((int)*p) || *p == '+' || *p == '-' || *p == '.'; p++) {
for (p = name; isalnum((unsigned char)*p) || *p == '+' || *p == '-' || *p == '.'; p++) {
n++;
}
+1 -1
View File
@@ -664,7 +664,7 @@ static int sapi_cli_server_register_entry_cb(zval *entry, int num_args, va_list
if (key[i] == '-') {
key[i] = '_';
} else {
key[i] = toupper(key[i]);
key[i] = toupper((unsigned char)key[i]);
}
}
spprintf(&real_key, 0, "%s_%s", "HTTP", key);
+2 -2
View File
@@ -976,7 +976,7 @@ static int fpm_conf_process_all_pools(void)
}
for (i = 0; i < strlen(status); i++) {
if (!isalnum(status[i]) && status[i] != '/' && status[i] != '-' && status[i] != '_' && status[i] != '.' && status[i] != '~') {
if (!isalnum((unsigned char)status[i]) && status[i] != '/' && status[i] != '-' && status[i] != '_' && status[i] != '.' && status[i] != '~') {
zlog(ZLOG_ERROR, "[pool %s] the status path '%s' must contain only the following characters '[alphanum]/_-.~'", wp->config->name, status);
return -1;
}
@@ -999,7 +999,7 @@ static int fpm_conf_process_all_pools(void)
}
for (i = 0; i < strlen(ping); i++) {
if (!isalnum(ping[i]) && ping[i] != '/' && ping[i] != '-' && ping[i] != '_' && ping[i] != '.' && ping[i] != '~') {
if (!isalnum((unsigned char)ping[i]) && ping[i] != '/' && ping[i] != '-' && ping[i] != '_' && ping[i] != '.' && ping[i] != '~') {
zlog(ZLOG_ERROR, "[pool %s] the ping path '%s' must contain only the following characters '[alphanum]/_-.~'", wp->config->name, ping);
return -1;
}
+2 -2
View File
@@ -1697,12 +1697,12 @@ PHP_FUNCTION(litespeed_response_headers)
len = p - h->header;
if (p && len > 0 && len < LSAPI_RESP_HTTP_HEADER_MAX) {
memmove( headerBuf, h->header, len );
while( len > 0 && (isspace( headerBuf[len-1])) ) {
while( len > 0 && (isspace((unsigned char)headerBuf[len - 1])) ) {
--len;
}
headerBuf[len] = 0;
if ( len ) {
while( isspace(*++p));
while(isspace((unsigned char)*++p));
add_assoc_string_ex(return_value, headerBuf, len, p);
}
}
+3 -3
View File
@@ -2213,7 +2213,7 @@ static char * GetHeaderVar( LSAPI_Request * pReq, const char * name )
while(( pKey < pKeyEnd )&&( *p ))
{
char ch = toupper( *pKey );
char ch = toupper( (unsigned char)*pKey );
if ((ch != *p )||(( *p == '_' )&&( ch != '-')))
break;
++p; ++pKey;
@@ -2397,7 +2397,7 @@ int LSAPI_ForeachHeader_r( LSAPI_Request * pReq,
if ( ch == '-' )
*p++ = '_';
else
*p++ = toupper( ch );
*p++ = toupper( (unsigned char)ch );
}
*p = 0;
keyLen += 5;
@@ -2642,7 +2642,7 @@ int LSAPI_ParseSockAddr( const char * pBind, struct sockaddr * pAddr )
if ( !pBind )
return -1;
while( isspace( *pBind ) )
while(isspace( (unsigned char)*pBind ) )
++pBind;
strncpy(achAddr, pBind, 255);
+2 -2
View File
@@ -783,9 +783,9 @@ PHPDBG_API char *phpdbg_read_input(const char *buffered) /* {{{ */
}
}
if (buffer && isspace(*buffer)) {
if (buffer && isspace((unsigned char)*buffer)) {
char *trimmed = buffer;
while (isspace(*trimmed))
while (isspace((unsigned char)*trimmed))
trimmed++;
trimmed = estrdup(trimmed);
+1 -1
View File
@@ -215,7 +215,7 @@ static void phpdbg_line_init(char *cmd, struct phpdbg_init_state *state) {
state->line++;
while (cmd_len > 0L && isspace(cmd[cmd_len-1])) {
while (cmd_len > 0L && isspace((unsigned char)cmd[cmd_len-1])) {
cmd_len--;
}
+5 -5
View File
@@ -82,10 +82,10 @@ PHPDBG_API int phpdbg_is_numeric(const char *str) /* {{{ */
return 0;
for (; *str; str++) {
if (isspace(*str) || *str == '-') {
if (isspace((unsigned char)*str) || *str == '-') {
continue;
}
return isdigit(*str);
return isdigit((unsigned char)*str);
}
return 0;
} /* }}} */
@@ -96,7 +96,7 @@ PHPDBG_API int phpdbg_is_empty(const char *str) /* {{{ */
return 1;
for (; *str; str++) {
if (isspace(*str)) {
if (isspace((unsigned char)*str)) {
continue;
}
return 0;
@@ -199,12 +199,12 @@ PHPDBG_API char *phpdbg_trim(const char *str, size_t len, size_t *new_len) /* {{
const char *p = str;
char *new = NULL;
while (isspace(*p)) {
while (isspace((unsigned char)*p)) {
++p;
--len;
}
while (*p && isspace(*(p + len -1))) {
while (*p && isspace((unsigned char)p[len - 1])) {
--len;
}
+3 -3
View File
@@ -57,7 +57,7 @@
efree(response); \
} \
}
#define SMTP_SKIP_SPACE(str) { while (isspace(*str)) { str++; } }
#define SMTP_SKIP_SPACE(str) { while (isspace((unsigned char)*(str))) { (str)++; } }
char seps[] = " ,\t\n";
@@ -725,7 +725,7 @@ static int PostHeader(char *RPath, const char *Subject, const char *mailTo, char
headers_lc_len = strlen(headers_lc);
for (i = 0; i < headers_lc_len; i++) {
headers_lc[i] = tolower(headers_lc[i]);
headers_lc[i] = tolower((unsigned char)headers_lc[i]);
}
}
@@ -853,7 +853,7 @@ return 0;
/* Resolve the servers IP */
/*
if (!isdigit(PW32G(mail_host)[0])||!gethostbyname(PW32G(mail_host)))
if (!isdigit((unsigned char)PW32G(mail_host)[0])||!gethostbyname(PW32G(mail_host)))
{
return (FAILED_TO_RESOLVE_HOST);
}