com php-src: datatype fixes for iconv: ext/iconv/iconv.c main/SAPI.c main/SAPI.h

From: Date: Wed, 20 Nov 2013 16:11:10 +0000
Subject: com php-src: datatype fixes for iconv: ext/iconv/iconv.c main/SAPI.c main/SAPI.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-74009@lists.php.net to get a copy of this message
Commit: 7156c5cb393b4a55d9c82b40218fae9b24c1816f Author: Anatol Belski <ab@php.net> Wed, 20 Nov 2013 17:11:10 +0100 Parents: 6a60a038593db369f6275b440350a12aaa9649c1 Branches: str_size_and_int64 Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=7156c5cb393b4a55d9c82b40218fae9b24c1816f Log: datatype fixes for iconv Changed paths: M ext/iconv/iconv.c M main/SAPI.c M main/SAPI.h

diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c index 21d775c..b706104 100644 --- a/ext/iconv/iconv.c +++ b/ext/iconv/iconv.c @@ -196,15 +196,15 @@ static php_iconv_err_t _php_iconv_appendc(smart_str *d, const char c, iconv_t cd static void _php_iconv_show_error(php_iconv_err_t err, const char *out_charset, const char *in_charset TSRMLS_DC); -static php_iconv_err_t _php_iconv_strlen(unsigned int *pretval, const char *str, size_t nbytes, const char *enc); +static php_iconv_err_t _php_iconv_strlen(zend_str_size_uint *pretval, const char *str, size_t nbytes, const char *enc); -static php_iconv_err_t _php_iconv_substr(smart_str *pretval, const char *str, size_t nbytes, int offset, int len, const char *enc); +static php_iconv_err_t _php_iconv_substr(smart_str *pretval, const char *str, size_t nbytes, php_int_t offset, php_int_t len, const char *enc); -static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval, const char *haystk, size_t haystk_nbytes, const char *ndl, size_t ndl_nbytes, int offset, const char *enc); +static php_iconv_err_t _php_iconv_strpos(zend_str_size_uint *pretval, const char *haystk, size_t haystk_nbytes, const char *ndl, size_t ndl_nbytes, php_int_t offset, const char *enc); -static php_iconv_err_t _php_iconv_mime_encode(smart_str *pretval, const char *fname, size_t fname_nbytes, const char *fval, size_t fval_nbytes, unsigned int max_line_len, const char *lfchars, php_iconv_enc_scheme_t enc_scheme, const char *out_charset, const char *enc); +static php_iconv_err_t _php_iconv_mime_encode(smart_str *pretval, const char *fname, size_t fname_nbytes, const char *fval, size_t fval_nbytes, zend_str_size_uint max_line_len, const char *lfchars, php_iconv_enc_scheme_t enc_scheme, const char *out_charset, const char *enc); -static php_iconv_err_t _php_iconv_mime_decode(smart_str *pretval, const char *str, size_t str_nbytes, const char *enc, const char **next_pos, int mode); +static php_iconv_err_t _php_iconv_mime_decode(smart_str *pretval, const char *str, size_t str_nbytes, const char *enc, const char **next_pos, php_int_t mode); static php_iconv_err_t php_iconv_stream_filter_register_factory(TSRMLS_D); static php_iconv_err_t php_iconv_stream_filter_unregister_factory(TSRMLS_D); @@ -332,7 +332,8 @@ static php_output_handler *php_iconv_output_handler_init(const char *handler_nam static int php_iconv_output_handler(void **nothing, php_output_context *output_context) { char *s, *content_type, *mimetype = NULL; - int output_status, mimetype_len = 0; + int output_status; + zend_str_size_int mimetype_len = 0; PHP_OUTPUT_TSRMLS(output_context); if (output_context->op & PHP_OUTPUT_HANDLER_START) { @@ -353,13 +354,13 @@ static int php_iconv_output_handler(void **nothing, php_output_context *output_c } if (mimetype != NULL && !(output_context->op & PHP_OUTPUT_HANDLER_CLEAN)) { - int len; + php_int_t len; char *p = strstr(ICONVG(output_encoding), "//"); if (p) { - len = spprintf(&content_type, 0, "Content-Type:%.*s; charset=%.*s", mimetype_len ? mimetype_len : (int) strlen(mimetype), mimetype, (int)(p - ICONVG(output_encoding)), ICONVG(output_encoding)); + len = spprintf(&content_type, 0, "Content-Type:%.*s; charset=%.*s", mimetype_len ? mimetype_len : (zend_str_size_int) strlen(mimetype), mimetype, (zend_str_size_int)(p - ICONVG(output_encoding)), ICONVG(output_encoding)); } else { - len = spprintf(&content_type, 0, "Content-Type:%.*s; charset=%s", mimetype_len ? mimetype_len : (int) strlen(mimetype), mimetype, ICONVG(output_encoding)); + len = spprintf(&content_type, 0, "Content-Type:%.*s; charset=%s", mimetype_len ? mimetype_len : (zend_str_size_int) strlen(mimetype), mimetype, ICONVG(output_encoding)); } if (content_type && SUCCESS == sapi_add_header(content_type, len, 0)) { SG(sapi_headers).send_default_content_type = 0; @@ -639,7 +640,7 @@ PHP_ICONV_API php_iconv_err_t php_iconv_string(const char *in_p, size_t in_len, /* }}} */ /* {{{ _php_iconv_strlen() */ -static php_iconv_err_t _php_iconv_strlen(unsigned int *pretval, const char *str, size_t nbytes, const char *enc) +static php_iconv_err_t _php_iconv_strlen(zend_str_size_uint *pretval, const char *str, size_t nbytes, const char *enc) { char buf[GENERIC_SUPERSET_NBYTES*2]; @@ -653,9 +654,9 @@ static php_iconv_err_t _php_iconv_strlen(unsigned int *pretval, const char *str, char *out_p; size_t out_left; - unsigned int cnt; + zend_str_size_uint cnt; - *pretval = (unsigned int)-1; + *pretval = (zend_str_size_uint)-1; cd = iconv_open(GENERIC_SUPERSET_NAME, enc); @@ -671,7 +672,8 @@ static php_iconv_err_t _php_iconv_strlen(unsigned int *pretval, const char *str, #endif } - errno = out_left = 0; + errno = 0; + out_left = 0; for (in_p = str, in_left = nbytes, cnt = 0; in_left > 0; cnt+=2) { size_t prev_in_left; @@ -723,7 +725,7 @@ static php_iconv_err_t _php_iconv_strlen(unsigned int *pretval, const char *str, /* {{{ _php_iconv_substr() */ static php_iconv_err_t _php_iconv_substr(smart_str *pretval, - const char *str, size_t nbytes, int offset, int len, const char *enc) + const char *str, size_t nbytes, php_int_t offset, php_int_t len, const char *enc) { char buf[GENERIC_SUPERSET_NBYTES]; @@ -737,8 +739,8 @@ static php_iconv_err_t _php_iconv_substr(smart_str *pretval, char *out_p; size_t out_left; - unsigned int cnt; - int total_len; + zend_str_size_uint cnt; + php_int_t total_len; err = _php_iconv_strlen(&total_len, str, nbytes, enc); if (err != PHP_ICONV_ERR_SUCCESS) { @@ -868,10 +870,10 @@ static php_iconv_err_t _php_iconv_substr(smart_str *pretval, /* }}} */ /* {{{ _php_iconv_strpos() */ -static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval, +static php_iconv_err_t _php_iconv_strpos(zend_str_size_uint *pretval, const char *haystk, size_t haystk_nbytes, const char *ndl, size_t ndl_nbytes, - int offset, const char *enc) + php_int_t offset, const char *enc) { char buf[GENERIC_SUPERSET_NBYTES]; @@ -885,15 +887,15 @@ static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval, char *out_p; size_t out_left; - unsigned int cnt; + zend_str_size_uint cnt; char *ndl_buf; const char *ndl_buf_p; size_t ndl_buf_len, ndl_buf_left; - unsigned int match_ofs; + zend_str_size_uint match_ofs; - *pretval = (unsigned int)-1; + *pretval = (zend_str_size_uint)-1; err = php_iconv_string(ndl, ndl_nbytes, &ndl_buf, &ndl_buf_len, GENERIC_SUPERSET_NAME, enc); @@ -924,7 +926,7 @@ static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval, ndl_buf_p = ndl_buf; ndl_buf_left = ndl_buf_len; - match_ofs = (unsigned int)-1; + match_ofs = (zend_str_size_uint)-1; for (in_p = haystk, in_left = haystk_nbytes, cnt = 0; in_left > 0; ++cnt) { size_t prev_in_left; @@ -957,9 +959,9 @@ static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval, } } if (offset >= 0) { - if (cnt >= (unsigned int)offset) { + if (cnt >= (zend_str_size_uint)offset) { if (_php_iconv_memequal(buf, ndl_buf_p, sizeof(buf))) { - if (match_ofs == (unsigned int)-1) { + if (match_ofs == (zend_str_size_uint)-1) { match_ofs = cnt; } ndl_buf_p += GENERIC_SUPERSET_NBYTES; @@ -969,11 +971,11 @@ static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval, break; } } else { - unsigned int i, j, lim; + zend_str_size_uint i, j, lim; i = 0; j = GENERIC_SUPERSET_NBYTES; - lim = (unsigned int)(ndl_buf_p - ndl_buf); + lim = (zend_str_size_uint)(ndl_buf_p - ndl_buf); while (j < lim) { if (_php_iconv_memequal(&ndl_buf[j], &ndl_buf[i], @@ -992,7 +994,7 @@ static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval, ndl_buf_p = &ndl_buf[i]; ndl_buf_left = ndl_buf_len - i; } else { - match_ofs = (unsigned int)-1; + match_ofs = (zend_str_size_uint)-1; ndl_buf_p = ndl_buf; ndl_buf_left = ndl_buf_len; } @@ -1000,7 +1002,7 @@ static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval, } } else { if (_php_iconv_memequal(buf, ndl_buf_p, sizeof(buf))) { - if (match_ofs == (unsigned int)-1) { + if (match_ofs == (zend_str_size_uint)-1) { match_ofs = cnt; } ndl_buf_p += GENERIC_SUPERSET_NBYTES; @@ -1012,11 +1014,11 @@ static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval, match_ofs = -1; } } else { - unsigned int i, j, lim; + zend_str_size_uint i, j, lim; i = 0; j = GENERIC_SUPERSET_NBYTES; - lim = (unsigned int)(ndl_buf_p - ndl_buf); + lim = (zend_str_size_uint)(ndl_buf_p - ndl_buf); while (j < lim) { if (_php_iconv_memequal(&ndl_buf[j], &ndl_buf[i], @@ -1035,7 +1037,7 @@ static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval, ndl_buf_p = &ndl_buf[i]; ndl_buf_left = ndl_buf_len - i; } else { - match_ofs = (unsigned int)-1; + match_ofs = (zend_str_size_uint)-1; ndl_buf_p = ndl_buf; ndl_buf_left = ndl_buf_len; } @@ -1054,11 +1056,11 @@ static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval, /* }}} */ /* {{{ _php_iconv_mime_encode() */ -static php_iconv_err_t _php_iconv_mime_encode(smart_str *pretval, const char *fname, size_t fname_nbytes, const char *fval, size_t fval_nbytes, unsigned int max_line_len, const char *lfchars, php_iconv_enc_scheme_t enc_scheme, const char *out_charset, const char *enc) +static php_iconv_err_t _php_iconv_mime_encode(smart_str *pretval, const char *fname, size_t fname_nbytes, const char *fval, size_t fval_nbytes, zend_str_size_uint max_line_len, const char *lfchars, php_iconv_enc_scheme_t enc_scheme, const char *out_charset, const char *enc) { php_iconv_err_t err = PHP_ICONV_ERR_SUCCESS; iconv_t cd = (iconv_t)(-1), cd_pl = (iconv_t)(-1); - unsigned int char_cnt = 0; + zend_str_size_uint char_cnt = 0; size_t out_charset_len; size_t lfchars_len; char *buf = NULL; @@ -1385,7 +1387,7 @@ out: /* }}} */ /* {{{ _php_iconv_mime_decode() */ -static php_iconv_err_t _php_iconv_mime_decode(smart_str *pretval, const char *str, size_t str_nbytes, const char *enc, const char **next_pos, int mode) +static php_iconv_err_t _php_iconv_mime_decode(smart_str *pretval, const char *str, size_t str_nbytes, const char *enc, const char **next_pos, php_int_t mode) { php_iconv_err_t err = PHP_ICONV_ERR_SUCCESS; @@ -1964,7 +1966,7 @@ PHP_FUNCTION(iconv_strlen) php_iconv_err_t err; - unsigned int retval; + zend_str_size_uint retval; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|S", &str, &str_len, &charset, &charset_len) == FAILURE) { @@ -1979,7 +1981,7 @@ PHP_FUNCTION(iconv_strlen) err = _php_iconv_strlen(&retval, str, str_len, charset); _php_iconv_show_error(err, GENERIC_SUPERSET_NAME, charset TSRMLS_CC); if (err == PHP_ICONV_ERR_SUCCESS) { - RETVAL_LONG(retval); + RETVAL_LONG((php_int_t)retval); } else { RETVAL_FALSE; } @@ -1994,13 +1996,13 @@ PHP_FUNCTION(iconv_substr) zend_str_size_int charset_len = 0; char *str; zend_str_size_int str_len; - long offset, length = 0; + php_int_t offset, length = 0; php_iconv_err_t err; smart_str retval = {0}; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Sl|lS", + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Si|iS", &str, &str_len, &offset, &length, &charset, &charset_len) == FAILURE) { RETURN_FALSE; @@ -2036,13 +2038,13 @@ PHP_FUNCTION(iconv_strpos) zend_str_size_int haystk_len; char *ndl; zend_str_size_int ndl_len; - long offset = 0; + php_int_t offset = 0; php_iconv_err_t err; - unsigned int retval; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS|lS", + zend_str_size_uint retval; +__debugbreak(); + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS|iS", &haystk, &haystk_len, &ndl, &ndl_len, &offset, &charset, &charset_len) == FAILURE) { RETURN_FALSE; @@ -2066,8 +2068,8 @@ PHP_FUNCTION(iconv_strpos) offset, charset); _php_iconv_show_error(err, GENERIC_SUPERSET_NAME, charset TSRMLS_CC); - if (err == PHP_ICONV_ERR_SUCCESS && retval != (unsigned int)-1) { - RETVAL_LONG((long)retval); + if (err == PHP_ICONV_ERR_SUCCESS && retval != (zend_str_size_uint)-1) { + RETVAL_LONG((php_int_t)retval); } else { RETVAL_FALSE; } @@ -2087,7 +2089,7 @@ PHP_FUNCTION(iconv_strrpos) php_iconv_err_t err; - unsigned int retval; + zend_str_size_uint retval; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS|S", &haystk, &haystk_len, &ndl, &ndl_len, @@ -2108,8 +2110,8 @@ PHP_FUNCTION(iconv_strrpos) -1, charset); _php_iconv_show_error(err, GENERIC_SUPERSET_NAME, charset TSRMLS_CC); - if (err == PHP_ICONV_ERR_SUCCESS && retval != (unsigned int)-1) { - RETVAL_LONG((long)retval); + if (err == PHP_ICONV_ERR_SUCCESS && retval != (zend_str_size_uint)-1) { + RETVAL_LONG((php_int_t)retval); } else { RETVAL_FALSE; } @@ -2131,7 +2133,7 @@ PHP_FUNCTION(iconv_mime_encode) const char *in_charset = ICONVG(internal_encoding); const char *out_charset = in_charset; - long line_len = 76; + php_int_t line_len = 76; const char *lfchars = "\r\n"; php_iconv_enc_scheme_t scheme_id = PHP_ICONV_ENC_SCHEME_BASE64; @@ -2244,13 +2246,13 @@ PHP_FUNCTION(iconv_mime_decode) zend_str_size_int encoded_str_len; char *charset = ICONVG(internal_encoding); zend_str_size_int charset_len = 0; - long mode = 0; + php_int_t mode = 0; smart_str retval = {0}; php_iconv_err_t err; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|lS", + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|iS", &encoded_str, &encoded_str_len, &mode, &charset, &charset_len) == FAILURE) { RETURN_FALSE; @@ -2285,11 +2287,11 @@ PHP_FUNCTION(iconv_mime_decode_headers) zend_str_size_int encoded_str_len; char *charset = ICONVG(internal_encoding); zend_str_size_int charset_len = 0; - long mode = 0; + php_int_t mode = 0; php_iconv_err_t err = PHP_ICONV_ERR_SUCCESS; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|lS", + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|iS", &encoded_str, &encoded_str_len, &mode, &charset, &charset_len) == FAILURE) { RETURN_FALSE; diff --git a/main/SAPI.c b/main/SAPI.c index 3cf7204..b8a6d97 100644 --- a/main/SAPI.c +++ b/main/SAPI.c @@ -241,9 +241,9 @@ static void sapi_read_post_data(TSRMLS_D) } } -SAPI_API int sapi_read_post_block(char *buffer, size_t buflen TSRMLS_DC) +SAPI_API zend_str_size_int sapi_read_post_block(char *buffer, size_t buflen TSRMLS_DC) { - int read_bytes; + zend_str_size_int read_bytes; if (!sapi_module.read_post) { return -1; @@ -623,7 +623,7 @@ static void sapi_remove_header(zend_llist *l, char *name, zend_str_size_uint len } } -SAPI_API int sapi_add_header_ex(char *header_line, uint header_line_len, zend_bool duplicate, zend_bool replace TSRMLS_DC) +SAPI_API int sapi_add_header_ex(char *header_line, zend_str_size_uint header_line_len, zend_bool duplicate, zend_bool replace TSRMLS_DC) { sapi_header_line ctr = {0}; int r; diff --git a/main/SAPI.h b/main/SAPI.h index faef411..124d0cc 100644 --- a/main/SAPI.h +++ b/main/SAPI.h @@ -183,14 +183,14 @@ BEGIN_EXTERN_C() SAPI_API int sapi_header_op(sapi_header_op_enum op, void *arg TSRMLS_DC); /* Deprecated functions. Use sapi_header_op instead. */ -SAPI_API int sapi_add_header_ex(char *header_line, uint header_line_len, zend_bool duplicate, zend_bool replace TSRMLS_DC); +SAPI_API int sapi_add_header_ex(char *header_line, zend_str_size_uint header_line_len, zend_bool duplicate, zend_bool replace TSRMLS_DC); #define sapi_add_header(a, b, c) sapi_add_header_ex((a),(b),(c),1 TSRMLS_CC) SAPI_API int sapi_send_headers(TSRMLS_D); SAPI_API void sapi_free_header(sapi_header_struct *sapi_header); SAPI_API void sapi_handle_post(void *arg TSRMLS_DC); -SAPI_API int sapi_read_post_block(char *buffer, size_t buflen TSRMLS_DC); +SAPI_API zend_str_size_int sapi_read_post_block(char *buffer, size_t buflen TSRMLS_DC); SAPI_API int sapi_register_post_entries(sapi_post_entry *post_entry TSRMLS_DC); SAPI_API int sapi_register_post_entry(sapi_post_entry *post_entry TSRMLS_DC); SAPI_API void sapi_unregister_post_entry(sapi_post_entry *post_entry TSRMLS_DC);
« previous php.cvs (#74009) next »