[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
hirokawaFri Jun 13 14:50:03 2008 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: MFH http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.23r2=1.142.2.47.2.24diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.23 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.24 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.23 Sat Feb 16 12:41:55 2008 +++ php-src/ext/mbstring/mbstring.c Fri Jun 13 14:50:03 2008 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.23 2008/02/16 12:41:55 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.24 2008/06/13 14:50:03 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -1099,9 +1099,14 @@ /* clear overloaded function. */ if (MBSTRG(func_overload)){ p = (mb_ovld[0]); - while (p-type 0 zend_hash_find(EG(function_table), p-save_func, strlen(p-save_func)+1 , (void **)orig) == SUCCESS) { - zend_hash_update(EG(function_table), p-orig_func, strlen(p-orig_func)+1, orig, sizeof(zend_function), NULL); - zend_hash_del(EG(function_table), p-save_func, strlen(p-save_func)+1); + while (p-type 0) { + if ((MBSTRG(func_overload) p-type) == p-type + zend_hash_find(EG(function_table), p-save_func, + strlen(p-save_func)+1, (void **)orig) == SUCCESS) { + + zend_hash_update(EG(function_table), p-orig_func, strlen(p-orig_func)+1, orig, sizeof(zend_function), NULL); + zend_hash_del(EG(function_table), p-save_func, strlen(p-save_func)+1); + } p++; } } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
hirokawaSat Feb 16 08:50:08 2008 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: MFB http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.21r2=1.142.2.47.2.22diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.21 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.22 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.21 Wed Apr 4 15:28:18 2007 +++ php-src/ext/mbstring/mbstring.c Sat Feb 16 08:50:07 2008 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.21 2007/04/04 15:28:18 masugata Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.22 2008/02/16 08:50:07 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -971,6 +971,8 @@ const struct mb_overload_def *p; MBSTRG(current_language) = MBSTRG(language); + php_mb_nls_get_default_detect_order_list(MBSTRG(language), +MBSTRG(default_detect_order_list), MBSTRG(default_detect_order_list_size)); if (MBSTRG(internal_encoding) == mbfl_no_encoding_invalid) { char *default_enc = NULL; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
On Sat, 16 Feb 2008, Rui Hirokawa wrote: hirokawa Sat Feb 16 08:50:08 2008 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: MFB Rui, PHP 4 is no longer supported. In order to use it *just* for security fixes, it is probably a good idea not to have normal commits in this branch *at all*. Could you please revert your last two commits? regards, Derick -- Derick Rethans http://derickrethans.nl | http://ezcomponents.org | http://xdebug.org -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
hirokawaSat Feb 16 12:41:55 2008 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: revert commit. http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.22r2=1.142.2.47.2.23diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.22 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.23 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.22 Sat Feb 16 08:50:07 2008 +++ php-src/ext/mbstring/mbstring.c Sat Feb 16 12:41:55 2008 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.22 2008/02/16 08:50:07 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.23 2008/02/16 12:41:55 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -971,8 +971,6 @@ const struct mb_overload_def *p; MBSTRG(current_language) = MBSTRG(language); - php_mb_nls_get_default_detect_order_list(MBSTRG(language), -MBSTRG(default_detect_order_list), MBSTRG(default_detect_order_list_size)); if (MBSTRG(internal_encoding) == mbfl_no_encoding_invalid) { char *default_enc = NULL; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
masugataWed Apr 4 15:28:18 2007 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: Sync with mail function in mb_send_mail function(problem MOPB-33-2007:PHP and MOPB-34-2007:PHP). http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.20r2=1.142.2.47.2.21diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.20 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.21 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.20 Sun Mar 18 17:19:30 2007 +++ php-src/ext/mbstring/mbstring.c Wed Apr 4 15:28:18 2007 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.20 2007/03/18 17:19:30 iliaa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.21 2007/04/04 15:28:18 masugata Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -3506,20 +3506,20 @@ #if HAVE_SENDMAIL #define SKIP_LONG_HEADER_SEP_MBSTRING(str, pos) \ if (str[pos] == '\r' str[pos + 1] == '\n' (str[pos + 2] == ' ' || str[pos + 2] == '\t')) {\ - pos += 3; \ - while (str[pos] == ' ' || str[pos] == '\t') { \ - pos++; \ - } \ - continue; \ - } \ - else if (str[pos] == '\n' (str[pos + 1] == ' ' || str[pos + 1] == '\t')) { \ pos += 2; \ - while (str[pos] == ' ' || str[pos] == '\t') { \ + while (str[pos + 1] == ' ' || str[pos + 1] == '\t') { \ pos++; \ - } \ + } \ continue; \ } \ +#define MAIL_ASCIIZ_CHECK_MBSTRING(str, len) \ + pp = str; \ + ee = pp + len; \ + while ((pp = memchr(pp, '\0', (ee - pp {\ + *pp = ' '; \ + } \ + PHP_FUNCTION(mb_send_mail) { int argc, n; @@ -3536,7 +3536,8 @@ const mbfl_language *lang; int err = 0; char *to_r = NULL; - int to_len, i; + int to_len, extra_cmd_len, i; + char *pp, *ee; if (PG(safe_mode) (ZEND_NUM_ARGS() == 5)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, SAFE MODE Restriction in effect. The fifth parameter is disabled in SAFE MODE.); @@ -3569,6 +3570,8 @@ if (Z_STRVAL_PP(argv[0])) { to = Z_STRVAL_PP(argv[0]); to_len = Z_STRLEN_PP(argv[0]); + /* ASCIIZ check */ + MAIL_ASCIIZ_CHECK_MBSTRING(to, to_len); if (to_len 0) { to_r = estrndup(to, to_len); for (; to_len; to_len--) { @@ -3605,6 +3608,8 @@ orig_str.no_language = MBSTRG(current_language); orig_str.val = (unsigned char *)Z_STRVAL_PP(argv[1]); orig_str.len = Z_STRLEN_PP(argv[1]); + /* ASCIIZ check */ + MAIL_ASCIIZ_CHECK_MBSTRING(orig_str.val, orig_str.len); orig_str.no_encoding = MBSTRG(current_internal_encoding); if (orig_str.no_encoding == mbfl_no_encoding_invalid || orig_str.no_encoding == mbfl_no_encoding_pass) { @@ -3627,6 +3632,8 @@ orig_str.no_language = MBSTRG(current_language); orig_str.val = Z_STRVAL_PP(argv[2]); orig_str.len = Z_STRLEN_PP(argv[2]); + /* ASCIIZ check */ + MAIL_ASCIIZ_CHECK_MBSTRING(orig_str.val, orig_str.len); orig_str.no_encoding = MBSTRG(current_internal_encoding); if (orig_str.no_encoding == mbfl_no_encoding_invalid @@ -3663,6 +3670,8 @@ convert_to_string_ex(argv[3]); p = Z_STRVAL_PP(argv[3]);
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
masugataThu Dec 21 17:28:58 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: Fixed bug #39361, #39400 (mbstring function overloading problem). http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.18r2=1.142.2.47.2.19diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.18 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.19 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.18 Fri Nov 3 02:24:50 2006 +++ php-src/ext/mbstring/mbstring.c Thu Dec 21 17:28:57 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.18 2006/11/03 02:24:50 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.19 2006/12/21 17:28:57 masugata Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -2197,11 +2197,11 @@ convert_to_string_ex(arg2); if (offset 0 || offset Z_STRLEN_PP(arg1)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, Offset is out of range); + php_error_docref(NULL TSRMLS_CC, E_WARNING, Offset not contained in string.); RETURN_FALSE; } if (Z_STRLEN_PP(arg2) == 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, Empty needle); + php_error_docref(NULL TSRMLS_CC, E_WARNING, Empty delimiter.); RETURN_FALSE; } haystack.val = (unsigned char *)Z_STRVAL_PP(arg1); @@ -2272,11 +2272,9 @@ convert_to_string_ex(arg1); convert_to_string_ex(arg2); if (Z_STRLEN_PP(arg1) = 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, Empty haystack); RETURN_FALSE; } if (Z_STRLEN_PP(arg2) = 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING,Empty needle); RETURN_FALSE; } haystack.val = (unsigned char *)Z_STRVAL_PP(arg1); @@ -2331,7 +2329,7 @@ convert_to_string_ex(arg2); if (Z_STRLEN_PP(arg2) = 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING,Empty needle); + php_error_docref(NULL TSRMLS_CC, E_WARNING,Empty substring.); RETURN_FALSE; } haystack.val = (unsigned char *)Z_STRVAL_PP(arg1); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
hirokawaFri Nov 3 02:24:50 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: fixed illegal encoding detection when mbstring.encoding_translation is enabled.(made by komura) http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.17r2=1.142.2.47.2.18diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.17 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.18 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.17 Mon Apr 3 13:04:13 2006 +++ php-src/ext/mbstring/mbstring.c Fri Nov 3 02:24:50 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.17 2006/04/03 13:04:13 masugata Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.18 2006/11/03 02:24:50 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -1013,7 +1013,10 @@ MBSTRG(current_http_output_encoding) = MBSTRG(http_output_encoding); MBSTRG(current_filter_illegal_mode) = MBSTRG(filter_illegal_mode); MBSTRG(current_filter_illegal_substchar) = MBSTRG(filter_illegal_substchar); - MBSTRG(illegalchars) = 0; + + if (!MBSTRG(encoding_translation)) { + MBSTRG(illegalchars) = 0; + } n = 0; if (MBSTRG(detect_order_list)) { @@ -1774,6 +1777,8 @@ info.num_from_encodings = MBSTRG(http_input_list_size); info.from_language = MBSTRG(language); + MBSTRG(illegalchars) = 0; + detected = php_mbstr_encoding_handler(info, array_ptr, res TSRMLS_CC); MBSTRG(http_input_identify) = detected; @@ -3864,8 +3869,13 @@ if (ret != NULL) { MBSTRG(illegalchars) += illegalchars; - efree(ret-val); - RETURN_BOOL(illegalchars == 0); + if (illegalchars == 0 strncmp(string.val, ret-val, string.len) == 0) { + efree(ret-val); + RETURN_TRUE; + } else { + efree(ret-val); + RETURN_FALSE; + } } else { RETURN_FALSE; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c mbstring.h /ext/mbstring/libmbfl/mbfl mbfilter.c
masugataMon Apr 3 13:04:13 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c mbstring.h /php-src/ext/mbstring/libmbfl/mbfl mbfilter.c Log: added mb_check_encoding( ). detect possible invalid encoding attack(avoids a security issue). http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.16r2=1.142.2.47.2.17diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.16 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.17 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.16 Thu Mar 23 02:17:42 2006 +++ php-src/ext/mbstring/mbstring.c Mon Apr 3 13:04:13 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.16 2006/03/23 02:17:42 masugata Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.17 2006/04/03 13:04:13 masugata Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -253,6 +253,7 @@ PHP_FE(mb_decode_numericentity, NULL) PHP_FE(mb_send_mail,NULL) PHP_FE(mb_get_info, NULL) + PHP_FE(mb_check_encoding, NULL) PHP_FALIAS(mbstrlen,mb_strlen, NULL) PHP_FALIAS(mbstrpos,mb_strpos, NULL) PHP_FALIAS(mbstrrpos, mb_strrpos, NULL) @@ -3812,6 +3813,65 @@ } /* }}} */ +/* {{{ proto bool mb_check_encoding([string var[, string encoding]]) + Check if the string is valid for the specified encoding */ +PHP_FUNCTION(mb_check_encoding) +{ + char *var = NULL; + int var_len; + char *enc = NULL; + int enc_len; + mbfl_buffer_converter *convd; + enum mbfl_no_encoding no_encoding = MBSTRG(current_internal_encoding); + mbfl_string string, result, *ret = NULL; + long illegalchars = 0; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |ss, var, var_len, enc, enc_len) == FAILURE) { + RETURN_FALSE; + } + + if (var == NULL) { + RETURN_BOOL(MBSTRG(illegalchars) == 0); + } + + if (enc != NULL) { + no_encoding = mbfl_name2no_encoding(enc); + if (no_encoding == mbfl_no_encoding_invalid || no_encoding == mbfl_no_encoding_pass) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid encoding \%s\, enc); + RETURN_FALSE; + } + } + + convd = mbfl_buffer_converter_new(no_encoding, no_encoding, 0); + if (convd == NULL) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Unable to create converter); + RETURN_FALSE; + } + mbfl_buffer_converter_illegal_mode(convd, MBSTRG(current_filter_illegal_mode)); + mbfl_buffer_converter_illegal_substchar(convd, MBSTRG(current_filter_illegal_substchar)); + + /* initialize string */ + mbfl_string_init(string); + mbfl_string_init(result); + string.no_encoding = no_encoding; + string.no_language = MBSTRG(current_language); + + string.val = (unsigned char *)var; + string.len = var_len; + ret = mbfl_buffer_converter_feed_result(convd, string, result); + illegalchars = mbfl_buffer_illegalchars(convd); + mbfl_buffer_converter_delete(convd); + + if (ret != NULL) { + MBSTRG(illegalchars) += illegalchars; + efree(ret-val); + RETURN_BOOL(illegalchars == 0); + } else { + RETURN_FALSE; + } +} +/* }}} */ + /* {{{ MBSTRING_API int php_mb_encoding_translation() */ MBSTRING_API int php_mb_encoding_translation(TSRMLS_D) { http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.h?r1=1.40.2.12.4.4r2=1.40.2.12.4.5diff_format=u Index: php-src/ext/mbstring/mbstring.h diff -u php-src/ext/mbstring/mbstring.h:1.40.2.12.4.4 php-src/ext/mbstring/mbstring.h:1.40.2.12.4.5 --- php-src/ext/mbstring/mbstring.h:1.40.2.12.4.4 Thu Mar 23 02:17:42 2006 +++ php-src/ext/mbstring/mbstring.h Mon Apr 3 13:04:13 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: mbstring.h,v 1.40.2.12.4.4 2006/03/23 02:17:42 masugata Exp $ */ +/* $Id: mbstring.h,v 1.40.2.12.4.5 2006/04/03 13:04:13 masugata Exp $ */ /* * PHP4 Multibyte String module mbstring (currently only for Japanese) @@ -117,6 +117,7 @@ PHP_FUNCTION(mb_decode_numericentity); PHP_FUNCTION(mb_send_mail); PHP_FUNCTION(mb_get_info); +PHP_FUNCTION(mb_check_encoding); MBSTRING_API int php_mb_encoding_translation(TSRMLS_D); http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c?r1=1.1.2.7.2.5r2=1.1.2.7.2.6diff_format=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c:1.1.2.7.2.5
Re: [PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c mbstring.h /ext/mbstring/libmbfl/mbfl mbfilter.c
Derick, Seiji Masugata wrote: masugata Mon Apr 3 13:04:13 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c mbstring.h /php-src/ext/mbstring/libmbfl/mbflmbfilter.c Log: added mb_check_encoding( ). detect possible invalid encoding attack(avoids a security issue). There was a contact from Rui. Make apply this function to the PHP4_4 Branch. http://news.php.net/php.cvs/37387 http://news.php.net/php.cvs/37437 This function is necessary to detect possible invalid encoding attack(avoids a security issue). There was no reply afterwards though it reported directly from Rui to Derick. Therefore, Rui thinks can apply to PHP4_4 Branch. I reverted without knowing this thing. Compatibility is secured. Therefore, there is not an influence. Thank you. -- Seiji Masugata http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.16r2=1.142.2.47.2.17diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.16 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.17 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.16 Thu Mar 23 02:17:42 2006 +++ php-src/ext/mbstring/mbstring.c Mon Apr 3 13:04:13 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.16 2006/03/23 02:17:42 masugata Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.17 2006/04/03 13:04:13 masugata Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -253,6 +253,7 @@ PHP_FE(mb_decode_numericentity, NULL) PHP_FE(mb_send_mail,NULL) PHP_FE(mb_get_info, NULL) + PHP_FE(mb_check_encoding, NULL) PHP_FALIAS(mbstrlen,mb_strlen, NULL) PHP_FALIAS(mbstrpos,mb_strpos, NULL) PHP_FALIAS(mbstrrpos, mb_strrpos, NULL) @@ -3812,6 +3813,65 @@ } /* }}} */ +/* {{{ proto bool mb_check_encoding([string var[, string encoding]]) + Check if the string is valid for the specified encoding */ +PHP_FUNCTION(mb_check_encoding) +{ + char *var = NULL; + int var_len; + char *enc = NULL; + int enc_len; + mbfl_buffer_converter *convd; + enum mbfl_no_encoding no_encoding = MBSTRG(current_internal_encoding); + mbfl_string string, result, *ret = NULL; + long illegalchars = 0; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |ss, var, var_len, enc, enc_len) == FAILURE) { + RETURN_FALSE; + } + + if (var == NULL) { + RETURN_BOOL(MBSTRG(illegalchars) == 0); + } + + if (enc != NULL) { + no_encoding = mbfl_name2no_encoding(enc); + if (no_encoding == mbfl_no_encoding_invalid || no_encoding == mbfl_no_encoding_pass) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid encoding \%s\, enc); + RETURN_FALSE; + } + } + + convd = mbfl_buffer_converter_new(no_encoding, no_encoding, 0); + if (convd == NULL) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Unable to create converter); + RETURN_FALSE; + } + mbfl_buffer_converter_illegal_mode(convd, MBSTRG(current_filter_illegal_mode)); + mbfl_buffer_converter_illegal_substchar(convd, MBSTRG(current_filter_illegal_substchar)); + + /* initialize string */ + mbfl_string_init(string); + mbfl_string_init(result); + string.no_encoding = no_encoding; + string.no_language = MBSTRG(current_language); + + string.val = (unsigned char *)var; + string.len = var_len; + ret = mbfl_buffer_converter_feed_result(convd, string, result); + illegalchars = mbfl_buffer_illegalchars(convd); + mbfl_buffer_converter_delete(convd); + + if (ret != NULL) { + MBSTRG(illegalchars) += illegalchars; + efree(ret-val); + RETURN_BOOL(illegalchars == 0); + } else { + RETURN_FALSE; + } +} +/* }}} */ + /* {{{ MBSTRING_API int php_mb_encoding_translation() */ MBSTRING_API int php_mb_encoding_translation(TSRMLS_D) { http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.h?r1=1.40.2.12.4.4r2=1.40.2.12.4.5diff_format=u Index: php-src/ext/mbstring/mbstring.h diff -u php-src/ext/mbstring/mbstring.h:1.40.2.12.4.4 php-src/ext/mbstring/mbstring.h:1.40.2.12.4.5 --- php-src/ext/mbstring/mbstring.h:1.40.2.12.4.4 Thu Mar 23 02:17:42 2006 +++ php-src/ext/mbstring/mbstring.h Mon Apr 3 13:04:13 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: mbstring.h,v 1.40.2.12.4.4 2006/03/23 02:17:42 masugata Exp $ */ +/* $Id: mbstring.h,v 1.40.2.12.4.5 2006/04/03 13:04:13 masugata Exp $ */
Re: [PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
Hi, Derick. very sorry... Was not looking at mail, because I was a long vacation. This is an awfully large change for a stable branch. Could you please provide a more eleborate comment in those cases? This change is not the change which is as large as that Derick thinks. :) However, the comment I wrote was not appropriate. Log: fixed doesn't return value when omitting arguments and return the more detailed information in mb_get_info( ). The mb_get_info function only returns information setting in mbstring. The function to change is not provided. Therefore, it is thought that there is no influence even if a lot of information is returned. The explanation became long but in this change, when it is possible to commit, I'm happy. :) thank you. On Tue, 21 Mar 2006 09:36:38 +0100 (CET) Derick Rethans [EMAIL PROTECTED] wrote: On Sat, 18 Mar 2006, Seiji Masugata wrote: masugataSat Mar 18 05:52:33 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: fixed doesn't return value when omitting arguments in mb_get_info( ). This is an awfully large change for a stable branch. Could you please provide a more eleborate comment in those cases? http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.12r2=1.142.2.47.2.13diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.12 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.13 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.12 Sun Mar 12 07:54:56 2006 +++ php-src/ext/mbstring/mbstring.c Sat Mar 18 05:52:33 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.12 2006/03/12 07:54:56 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.13 2006/03/18 05:52:33 masugata Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -3711,22 +3711,19 @@ Returns the current settings of mbstring */ PHP_FUNCTION(mb_get_info) { - zval **type; + char *typ = NULL; + int typ_len; char *name; - int argc = ZEND_NUM_ARGS(); const struct mb_overload_def *over_func; zval *row; + const mbfl_language *lang = mbfl_no2language(MBSTRG(current_language)); - if (argc 0 || argc 1 || zend_get_parameters_ex(1, type) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |s, typ, typ_len) == FAILURE) { + RETURN_FALSE; } - convert_to_string_ex(type); - - if (argc == 0 || !strcasecmp(all, Z_STRVAL_PP(type))) { - if (array_init(return_value) == FAILURE) { - RETURN_FALSE; - } + if (!typ || !strcasecmp(all, typ)) { + array_init(return_value); if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_internal_encoding))) != NULL) { add_assoc_string(return_value, internal_encoding, name, 1); } @@ -3750,19 +3747,30 @@ } else { add_assoc_string(return_value, func_overload, no overload, 1); } - } else if (!strcasecmp(internal_encoding, Z_STRVAL_PP(type))) { + if (lang != NULL) { + if ((name = (char *)mbfl_no_encoding2name(lang-mail_charset)) != NULL) { + add_assoc_string(return_value, mail_charset, name, 1); + } + if ((name = (char *)mbfl_no_encoding2name(lang-mail_header_encoding)) != NULL) { + add_assoc_string(return_value, mail_header_encoding, name, 1); + } + if ((name = (char *)mbfl_no_encoding2name(lang-mail_body_encoding)) != NULL) { + add_assoc_string(return_value, mail_body_encoding, name, 1); + } + } + } else if (!strcasecmp(internal_encoding, typ)) { if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_internal_encoding))) != NULL) { RETVAL_STRING(name, 1); } - } else if (!strcasecmp(http_input, Z_STRVAL_PP(type))) { + } else if (!strcasecmp(http_input, typ)) { if ((name = (char *)mbfl_no_encoding2name(MBSTRG(http_input_identify))) != NULL) { RETVAL_STRING(name, 1); } - } else if (!strcasecmp(http_output, Z_STRVAL_PP(type))) { + } else if (!strcasecmp(http_output, typ)) { if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_http_output_encoding))) != NULL) { RETVAL_STRING(name, 1); } - } else if (!strcasecmp(func_overload, Z_STRVAL_PP(type))) { + } else if (!strcasecmp(func_overload, typ)) {
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c mbstring.h /ext/mbstring/libmbfl/mbfl mbfilter.c
masugataThu Mar 23 02:17:43 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c mbstring.h /php-src/ext/mbstring/libmbfl/mbfl mbfilter.c Log: revert.(See http://news.php.net/php.cvs/37387) http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.15r2=1.142.2.47.2.16diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.15 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.16 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.15 Tue Mar 21 08:00:55 2006 +++ php-src/ext/mbstring/mbstring.c Thu Mar 23 02:17:42 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.15 2006/03/21 08:00:55 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.16 2006/03/23 02:17:42 masugata Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -253,7 +253,6 @@ PHP_FE(mb_decode_numericentity, NULL) PHP_FE(mb_send_mail,NULL) PHP_FE(mb_get_info, NULL) - PHP_FE(mb_check_encoding, NULL) PHP_FALIAS(mbstrlen,mb_strlen, NULL) PHP_FALIAS(mbstrpos,mb_strpos, NULL) PHP_FALIAS(mbstrrpos, mb_strrpos, NULL) @@ -3813,67 +3812,6 @@ } /* }}} */ -/* {{{ proto bool mb_check_encoding([string var[, string encoding]]) - Check if the string is valid for the specified encoding */ -PHP_FUNCTION(mb_check_encoding) -{ - char *var = NULL; - int var_len; - char *enc = NULL; - int enc_len; - char *name; - mbfl_buffer_converter *convd; - enum mbfl_no_encoding no_encoding = MBSTRG(current_internal_encoding); - zval *row; - mbfl_string string, result, *ret = NULL; - long illegalchars = 0; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |ss, var, var_len, enc, enc_len) == FAILURE) { - RETURN_FALSE; - } - - if (var == NULL) { - RETURN_BOOL(MBSTRG(illegalchars) == 0); - } - - if (enc != NULL) { - no_encoding = mbfl_name2no_encoding(enc); - if (no_encoding == mbfl_no_encoding_invalid || no_encoding == mbfl_no_encoding_pass) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid encoding \%s\, enc); - RETURN_FALSE; - } - } - - convd = mbfl_buffer_converter_new(no_encoding, no_encoding, 0); - if (convd == NULL) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, Unable to create converter); - RETURN_FALSE; - } - mbfl_buffer_converter_illegal_mode(convd, MBSTRG(current_filter_illegal_mode)); - mbfl_buffer_converter_illegal_substchar(convd, MBSTRG(current_filter_illegal_substchar)); - - /* initialize string */ - mbfl_string_init(string); - mbfl_string_init(result); - string.no_encoding = no_encoding; - string.no_language = MBSTRG(current_language); - - string.val = (unsigned char *)var; - string.len = var_len; - ret = mbfl_buffer_converter_feed_result(convd, string, result); - illegalchars = mbfl_buffer_illegalchars(convd); - mbfl_buffer_converter_delete(convd); - - if (ret != NULL) { - MBSTRG(illegalchars) += illegalchars; - efree(ret-val); - RETURN_BOOL(illegalchars == 0); - } else { - RETURN_FALSE; - } -} -/* }}} */ - /* {{{ MBSTRING_API int php_mb_encoding_translation() */ MBSTRING_API int php_mb_encoding_translation(TSRMLS_D) { http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.h?r1=1.40.2.12.4.3r2=1.40.2.12.4.4diff_format=u Index: php-src/ext/mbstring/mbstring.h diff -u php-src/ext/mbstring/mbstring.h:1.40.2.12.4.3 php-src/ext/mbstring/mbstring.h:1.40.2.12.4.4 --- php-src/ext/mbstring/mbstring.h:1.40.2.12.4.3 Tue Mar 21 08:00:55 2006 +++ php-src/ext/mbstring/mbstring.h Thu Mar 23 02:17:42 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: mbstring.h,v 1.40.2.12.4.3 2006/03/21 08:00:55 hirokawa Exp $ */ +/* $Id: mbstring.h,v 1.40.2.12.4.4 2006/03/23 02:17:42 masugata Exp $ */ /* * PHP4 Multibyte String module mbstring (currently only for Japanese) @@ -117,7 +117,6 @@ PHP_FUNCTION(mb_decode_numericentity); PHP_FUNCTION(mb_send_mail); PHP_FUNCTION(mb_get_info); -PHP_FUNCTION(mb_check_encoding); MBSTRING_API int php_mb_encoding_translation(TSRMLS_D); http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c?r1=1.1.2.7.2.4r2=1.1.2.7.2.5diff_format=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c:1.1.2.7.2.4
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c mbstring.h /ext/mbstring/libmbfl/mbfl mbfilter.c
hirokawaTue Mar 21 08:00:55 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c mbstring.h /php-src/ext/mbstring/libmbfl/mbfl mbfilter.c Log: MFH http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.14r2=1.142.2.47.2.15diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.14 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.15 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.14 Tue Mar 21 02:49:09 2006 +++ php-src/ext/mbstring/mbstring.c Tue Mar 21 08:00:55 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.14 2006/03/21 02:49:09 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.15 2006/03/21 08:00:55 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -253,6 +253,7 @@ PHP_FE(mb_decode_numericentity, NULL) PHP_FE(mb_send_mail,NULL) PHP_FE(mb_get_info, NULL) + PHP_FE(mb_check_encoding, NULL) PHP_FALIAS(mbstrlen,mb_strlen, NULL) PHP_FALIAS(mbstrpos,mb_strpos, NULL) PHP_FALIAS(mbstrrpos, mb_strrpos, NULL) @@ -3812,6 +3813,67 @@ } /* }}} */ +/* {{{ proto bool mb_check_encoding([string var[, string encoding]]) + Check if the string is valid for the specified encoding */ +PHP_FUNCTION(mb_check_encoding) +{ + char *var = NULL; + int var_len; + char *enc = NULL; + int enc_len; + char *name; + mbfl_buffer_converter *convd; + enum mbfl_no_encoding no_encoding = MBSTRG(current_internal_encoding); + zval *row; + mbfl_string string, result, *ret = NULL; + long illegalchars = 0; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |ss, var, var_len, enc, enc_len) == FAILURE) { + RETURN_FALSE; + } + + if (var == NULL) { + RETURN_BOOL(MBSTRG(illegalchars) == 0); + } + + if (enc != NULL) { + no_encoding = mbfl_name2no_encoding(enc); + if (no_encoding == mbfl_no_encoding_invalid || no_encoding == mbfl_no_encoding_pass) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid encoding \%s\, enc); + RETURN_FALSE; + } + } + + convd = mbfl_buffer_converter_new(no_encoding, no_encoding, 0); + if (convd == NULL) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Unable to create converter); + RETURN_FALSE; + } + mbfl_buffer_converter_illegal_mode(convd, MBSTRG(current_filter_illegal_mode)); + mbfl_buffer_converter_illegal_substchar(convd, MBSTRG(current_filter_illegal_substchar)); + + /* initialize string */ + mbfl_string_init(string); + mbfl_string_init(result); + string.no_encoding = no_encoding; + string.no_language = MBSTRG(current_language); + + string.val = (unsigned char *)var; + string.len = var_len; + ret = mbfl_buffer_converter_feed_result(convd, string, result); + illegalchars = mbfl_buffer_illegalchars(convd); + mbfl_buffer_converter_delete(convd); + + if (ret != NULL) { + MBSTRG(illegalchars) += illegalchars; + efree(ret-val); + RETURN_BOOL(illegalchars == 0); + } else { + RETURN_FALSE; + } +} +/* }}} */ + /* {{{ MBSTRING_API int php_mb_encoding_translation() */ MBSTRING_API int php_mb_encoding_translation(TSRMLS_D) { http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.h?r1=1.40.2.12.4.2r2=1.40.2.12.4.3diff_format=u Index: php-src/ext/mbstring/mbstring.h diff -u php-src/ext/mbstring/mbstring.h:1.40.2.12.4.2 php-src/ext/mbstring/mbstring.h:1.40.2.12.4.3 --- php-src/ext/mbstring/mbstring.h:1.40.2.12.4.2 Tue Mar 21 02:49:09 2006 +++ php-src/ext/mbstring/mbstring.h Tue Mar 21 08:00:55 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: mbstring.h,v 1.40.2.12.4.2 2006/03/21 02:49:09 hirokawa Exp $ */ +/* $Id: mbstring.h,v 1.40.2.12.4.3 2006/03/21 08:00:55 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring (currently only for Japanese) @@ -117,6 +117,7 @@ PHP_FUNCTION(mb_decode_numericentity); PHP_FUNCTION(mb_send_mail); PHP_FUNCTION(mb_get_info); +PHP_FUNCTION(mb_check_encoding); MBSTRING_API int php_mb_encoding_translation(TSRMLS_D); http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c?r1=1.1.2.7.2.3r2=1.1.2.7.2.4diff_format=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c diff -u php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c:1.1.2.7.2.3 php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c:1.1.2.7.2.4 ---
Re: [PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
On Sat, 18 Mar 2006, Seiji Masugata wrote: masugata Sat Mar 18 05:52:33 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: fixed doesn't return value when omitting arguments in mb_get_info( ). This is an awfully large change for a stable branch. Could you please provide a more eleborate comment in those cases? http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.12r2=1.142.2.47.2.13diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.12 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.13 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.12 Sun Mar 12 07:54:56 2006 +++ php-src/ext/mbstring/mbstring.c Sat Mar 18 05:52:33 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.12 2006/03/12 07:54:56 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.13 2006/03/18 05:52:33 masugata Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -3711,22 +3711,19 @@ Returns the current settings of mbstring */ PHP_FUNCTION(mb_get_info) { - zval **type; + char *typ = NULL; + int typ_len; char *name; - int argc = ZEND_NUM_ARGS(); const struct mb_overload_def *over_func; zval *row; + const mbfl_language *lang = mbfl_no2language(MBSTRG(current_language)); - if (argc 0 || argc 1 || zend_get_parameters_ex(1, type) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |s, typ, typ_len) == FAILURE) { + RETURN_FALSE; } - convert_to_string_ex(type); - - if (argc == 0 || !strcasecmp(all, Z_STRVAL_PP(type))) { - if (array_init(return_value) == FAILURE) { - RETURN_FALSE; - } + if (!typ || !strcasecmp(all, typ)) { + array_init(return_value); if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_internal_encoding))) != NULL) { add_assoc_string(return_value, internal_encoding, name, 1); } @@ -3750,19 +3747,30 @@ } else { add_assoc_string(return_value, func_overload, no overload, 1); } - } else if (!strcasecmp(internal_encoding, Z_STRVAL_PP(type))) { + if (lang != NULL) { + if ((name = (char *)mbfl_no_encoding2name(lang-mail_charset)) != NULL) { + add_assoc_string(return_value, mail_charset, name, 1); + } + if ((name = (char *)mbfl_no_encoding2name(lang-mail_header_encoding)) != NULL) { + add_assoc_string(return_value, mail_header_encoding, name, 1); + } + if ((name = (char *)mbfl_no_encoding2name(lang-mail_body_encoding)) != NULL) { + add_assoc_string(return_value, mail_body_encoding, name, 1); + } + } + } else if (!strcasecmp(internal_encoding, typ)) { if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_internal_encoding))) != NULL) { RETVAL_STRING(name, 1); } - } else if (!strcasecmp(http_input, Z_STRVAL_PP(type))) { + } else if (!strcasecmp(http_input, typ)) { if ((name = (char *)mbfl_no_encoding2name(MBSTRG(http_input_identify))) != NULL) { RETVAL_STRING(name, 1); } - } else if (!strcasecmp(http_output, Z_STRVAL_PP(type))) { + } else if (!strcasecmp(http_output, typ)) { if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_http_output_encoding))) != NULL) { RETVAL_STRING(name, 1); } - } else if (!strcasecmp(func_overload, Z_STRVAL_PP(type))) { + } else if (!strcasecmp(func_overload, typ)) { if (MBSTRG(func_overload)){ over_func = (mb_ovld[0]); array_init(return_value); @@ -3775,6 +3783,18 @@ } else { RETVAL_STRING(no overload, 1); } + } else if (!strcasecmp(mail_charset, typ)) { + if (lang != NULL (name = (char *)mbfl_no_encoding2name(lang-mail_charset)) != NULL) { + RETVAL_STRING(name, 1); + } + } else if (!strcasecmp(mail_header_encoding, typ)) { + if (lang != NULL (name = (char *)mbfl_no_encoding2name(lang-mail_header_encoding)) != NULL) { + RETVAL_STRING(name, 1); + } + } else if (!strcasecmp(mail_body_encoding, typ)) { + if (lang != NULL
Re: [PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c mbstring.h /ext/mbstring/libmbfl/mbfl mbfilter.c
On Tue, 21 Mar 2006, Rui Hirokawa wrote: hirokawa Tue Mar 21 08:00:55 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c mbstring.h /php-src/ext/mbstring/libmbfl/mbflmbfilter.c Log: MFH Please revert this. You can not add new functions to PHP 4.4.x. regards, Derick http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.14r2=1.142.2.47.2.15diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.14 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.15 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.14 Tue Mar 21 02:49:09 2006 +++ php-src/ext/mbstring/mbstring.c Tue Mar 21 08:00:55 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.14 2006/03/21 02:49:09 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.15 2006/03/21 08:00:55 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -253,6 +253,7 @@ PHP_FE(mb_decode_numericentity, NULL) PHP_FE(mb_send_mail,NULL) PHP_FE(mb_get_info, NULL) + PHP_FE(mb_check_encoding, NULL) PHP_FALIAS(mbstrlen,mb_strlen, NULL) PHP_FALIAS(mbstrpos,mb_strpos, NULL) PHP_FALIAS(mbstrrpos, mb_strrpos, NULL) @@ -3812,6 +3813,67 @@ } /* }}} */ +/* {{{ proto bool mb_check_encoding([string var[, string encoding]]) + Check if the string is valid for the specified encoding */ +PHP_FUNCTION(mb_check_encoding) +{ + char *var = NULL; + int var_len; + char *enc = NULL; + int enc_len; + char *name; + mbfl_buffer_converter *convd; + enum mbfl_no_encoding no_encoding = MBSTRG(current_internal_encoding); + zval *row; + mbfl_string string, result, *ret = NULL; + long illegalchars = 0; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |ss, var, var_len, enc, enc_len) == FAILURE) { + RETURN_FALSE; + } + + if (var == NULL) { + RETURN_BOOL(MBSTRG(illegalchars) == 0); + } + + if (enc != NULL) { + no_encoding = mbfl_name2no_encoding(enc); + if (no_encoding == mbfl_no_encoding_invalid || no_encoding == mbfl_no_encoding_pass) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid encoding \%s\, enc); + RETURN_FALSE; + } + } + + convd = mbfl_buffer_converter_new(no_encoding, no_encoding, 0); + if (convd == NULL) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Unable to create converter); + RETURN_FALSE; + } + mbfl_buffer_converter_illegal_mode(convd, MBSTRG(current_filter_illegal_mode)); + mbfl_buffer_converter_illegal_substchar(convd, MBSTRG(current_filter_illegal_substchar)); + + /* initialize string */ + mbfl_string_init(string); + mbfl_string_init(result); + string.no_encoding = no_encoding; + string.no_language = MBSTRG(current_language); + + string.val = (unsigned char *)var; + string.len = var_len; + ret = mbfl_buffer_converter_feed_result(convd, string, result); + illegalchars = mbfl_buffer_illegalchars(convd); + mbfl_buffer_converter_delete(convd); + + if (ret != NULL) { + MBSTRG(illegalchars) += illegalchars; + efree(ret-val); + RETURN_BOOL(illegalchars == 0); + } else { + RETURN_FALSE; + } +} +/* }}} */ + /* {{{ MBSTRING_API int php_mb_encoding_translation() */ MBSTRING_API int php_mb_encoding_translation(TSRMLS_D) { http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.h?r1=1.40.2.12.4.2r2=1.40.2.12.4.3diff_format=u Index: php-src/ext/mbstring/mbstring.h diff -u php-src/ext/mbstring/mbstring.h:1.40.2.12.4.2 php-src/ext/mbstring/mbstring.h:1.40.2.12.4.3 --- php-src/ext/mbstring/mbstring.h:1.40.2.12.4.2 Tue Mar 21 02:49:09 2006 +++ php-src/ext/mbstring/mbstring.h Tue Mar 21 08:00:55 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: mbstring.h,v 1.40.2.12.4.2 2006/03/21 02:49:09 hirokawa Exp $ */ +/* $Id: mbstring.h,v 1.40.2.12.4.3 2006/03/21 08:00:55 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring (currently only for Japanese) @@ -117,6 +117,7 @@ PHP_FUNCTION(mb_decode_numericentity); PHP_FUNCTION(mb_send_mail); PHP_FUNCTION(mb_get_info); +PHP_FUNCTION(mb_check_encoding); MBSTRING_API int php_mb_encoding_translation(TSRMLS_D); http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c?r1=1.1.2.7.2.3r2=1.1.2.7.2.4diff_format=u Index: php-src/ext/mbstring/libmbfl/mbfl/mbfilter.c diff
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c mbstring.h /ext/mbstring/libmbfl/mbfl mbfilter.c mbfilter.h mbfl_convert.c mbfl_convert.h
hirokawaTue Mar 21 02:49:09 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c mbstring.h /php-src/ext/mbstring/libmbfl/mbfl mbfilter.c mbfilter.h mbfl_convert.c mbfl_convert.h Log: MFH. http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.13r2=1.142.2.47.2.14diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.13 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.14 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.13 Sat Mar 18 05:52:33 2006 +++ php-src/ext/mbstring/mbstring.c Tue Mar 21 02:49:09 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.13 2006/03/18 05:52:33 masugata Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.14 2006/03/21 02:49:09 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -854,6 +854,7 @@ MBSTRG(filter_illegal_substchar) = 0x3f;/* '?' */ MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR; MBSTRG(current_filter_illegal_substchar) = 0x3f;/* '?' */ + MBSTRG(illegalchars) = 0; MBSTRG(func_overload) = 0; MBSTRG(encoding_translation) = 0; pglobals-outconv = NULL; @@ -1011,6 +1012,7 @@ MBSTRG(current_http_output_encoding) = MBSTRG(http_output_encoding); MBSTRG(current_filter_illegal_mode) = MBSTRG(filter_illegal_mode); MBSTRG(current_filter_illegal_substchar) = MBSTRG(filter_illegal_substchar); + MBSTRG(illegalchars) = 0; n = 0; if (MBSTRG(detect_order_list)) { @@ -1078,6 +1080,7 @@ MBSTRG(current_detect_order_list_size) = 0; } if (MBSTRG(outconv) != NULL) { + MBSTRG(illegalchars) += mbfl_buffer_illegalchars(MBSTRG(outconv)); mbfl_buffer_converter_delete(MBSTRG(outconv)); MBSTRG(outconv) = NULL; } @@ -1627,6 +1630,7 @@ } if (convd != NULL) { + MBSTRG(illegalchars) += mbfl_buffer_illegalchars(convd); mbfl_buffer_converter_delete(convd); } if (val_list != NULL) { @@ -1978,6 +1982,7 @@ PG(register_globals) = old_rg; if (convd != NULL) { + MBSTRG(illegalchars) += mbfl_buffer_illegalchars(convd); mbfl_buffer_converter_delete(convd); } efree((void *)str_list); @@ -2015,6 +2020,7 @@ if ((arg_status PHP_OUTPUT_HANDLER_START) != 0) { /* delete the converter just in case. */ if (MBSTRG(outconv)) { + MBSTRG(illegalchars) += mbfl_buffer_illegalchars(MBSTRG(outconv)); mbfl_buffer_converter_delete(MBSTRG(outconv)); MBSTRG(outconv) = NULL; } @@ -2079,6 +2085,7 @@ /* delete the converter if it is the last feed. */ if (last_feed) { + MBSTRG(illegalchars) += mbfl_buffer_illegalchars(MBSTRG(outconv)); mbfl_buffer_converter_delete(MBSTRG(outconv)); MBSTRG(outconv) = NULL; } @@ -2711,6 +2718,7 @@ output = (char *)ret-val; } + MBSTRG(illegalchars) += mbfl_buffer_illegalchars(convd); mbfl_buffer_converter_delete(convd); return output; } @@ -3376,6 +3384,7 @@ } efree(stack); } + MBSTRG(illegalchars) += mbfl_buffer_illegalchars(convd); mbfl_buffer_converter_delete(convd); } @@ -3795,6 +3804,8 @@ if (lang != NULL (name = (char *)mbfl_no_encoding2name(lang-mail_body_encoding)) != NULL) { RETVAL_STRING(name, 1); } + } else if (!strcasecmp(illegal_chars, typ)) { + RETVAL_LONG(MBSTRG(illegalchars)); } else { RETURN_FALSE; } @@ -3961,6 +3972,7 @@ str[i] = ret-val; len[i] = ret-len; } + MBSTRG(illegalchars) += mbfl_buffer_illegalchars(convd); mbfl_buffer_converter_delete(convd); } return ret ? 0 : -1; @@ -4184,6 +4196,7 @@ *to = ret-val; *to_length = ret-len; } + MBSTRG(illegalchars) += mbfl_buffer_illegalchars(convd); mbfl_buffer_converter_delete(convd); return ret ? 0 : -1; http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.h?r1=1.40.2.12.4.1r2=1.40.2.12.4.2diff_format=u Index: php-src/ext/mbstring/mbstring.h diff -u php-src/ext/mbstring/mbstring.h:1.40.2.12.4.1 php-src/ext/mbstring/mbstring.h:1.40.2.12.4.2 --- php-src/ext/mbstring/mbstring.h:1.40.2.12.4.1 Sun Jan 1 13:46:54 2006 +++ php-src/ext/mbstring/mbstring.h
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
masugataSat Mar 18 05:52:33 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: fixed doesn't return value when omitting arguments in mb_get_info( ). http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.12r2=1.142.2.47.2.13diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.12 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.13 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.12 Sun Mar 12 07:54:56 2006 +++ php-src/ext/mbstring/mbstring.c Sat Mar 18 05:52:33 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.12 2006/03/12 07:54:56 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.13 2006/03/18 05:52:33 masugata Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -3711,22 +3711,19 @@ Returns the current settings of mbstring */ PHP_FUNCTION(mb_get_info) { - zval **type; + char *typ = NULL; + int typ_len; char *name; - int argc = ZEND_NUM_ARGS(); const struct mb_overload_def *over_func; zval *row; + const mbfl_language *lang = mbfl_no2language(MBSTRG(current_language)); - if (argc 0 || argc 1 || zend_get_parameters_ex(1, type) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |s, typ, typ_len) == FAILURE) { + RETURN_FALSE; } - convert_to_string_ex(type); - - if (argc == 0 || !strcasecmp(all, Z_STRVAL_PP(type))) { - if (array_init(return_value) == FAILURE) { - RETURN_FALSE; - } + if (!typ || !strcasecmp(all, typ)) { + array_init(return_value); if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_internal_encoding))) != NULL) { add_assoc_string(return_value, internal_encoding, name, 1); } @@ -3750,19 +3747,30 @@ } else { add_assoc_string(return_value, func_overload, no overload, 1); } - } else if (!strcasecmp(internal_encoding, Z_STRVAL_PP(type))) { + if (lang != NULL) { + if ((name = (char *)mbfl_no_encoding2name(lang-mail_charset)) != NULL) { + add_assoc_string(return_value, mail_charset, name, 1); + } + if ((name = (char *)mbfl_no_encoding2name(lang-mail_header_encoding)) != NULL) { + add_assoc_string(return_value, mail_header_encoding, name, 1); + } + if ((name = (char *)mbfl_no_encoding2name(lang-mail_body_encoding)) != NULL) { + add_assoc_string(return_value, mail_body_encoding, name, 1); + } + } + } else if (!strcasecmp(internal_encoding, typ)) { if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_internal_encoding))) != NULL) { RETVAL_STRING(name, 1); } - } else if (!strcasecmp(http_input, Z_STRVAL_PP(type))) { + } else if (!strcasecmp(http_input, typ)) { if ((name = (char *)mbfl_no_encoding2name(MBSTRG(http_input_identify))) != NULL) { RETVAL_STRING(name, 1); } - } else if (!strcasecmp(http_output, Z_STRVAL_PP(type))) { + } else if (!strcasecmp(http_output, typ)) { if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_http_output_encoding))) != NULL) { RETVAL_STRING(name, 1); } - } else if (!strcasecmp(func_overload, Z_STRVAL_PP(type))) { + } else if (!strcasecmp(func_overload, typ)) { if (MBSTRG(func_overload)){ over_func = (mb_ovld[0]); array_init(return_value); @@ -3775,6 +3783,18 @@ } else { RETVAL_STRING(no overload, 1); } + } else if (!strcasecmp(mail_charset, typ)) { + if (lang != NULL (name = (char *)mbfl_no_encoding2name(lang-mail_charset)) != NULL) { + RETVAL_STRING(name, 1); + } + } else if (!strcasecmp(mail_header_encoding, typ)) { + if (lang != NULL (name = (char *)mbfl_no_encoding2name(lang-mail_header_encoding)) != NULL) { + RETVAL_STRING(name, 1); + } + } else if (!strcasecmp(mail_body_encoding, typ)) { + if (lang != NULL (name = (char *)mbfl_no_encoding2name(lang-mail_body_encoding)) != NULL) { + RETVAL_STRING(name, 1); +
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
hirokawaSun Mar 12 07:54:56 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: MFH http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.11r2=1.142.2.47.2.12diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.11 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.12 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.11 Fri Mar 10 16:15:35 2006 +++ php-src/ext/mbstring/mbstring.c Sun Mar 12 07:54:56 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.11 2006/03/10 16:15:35 masugata Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.12 2006/03/12 07:54:56 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -757,6 +757,9 @@ /* {{{ static PHP_INI_MH(OnUpdate_mbstring_substitute_character) */ static PHP_INI_MH(OnUpdate_mbstring_substitute_character) { + int c; + char *endptr = NULL; + if (new_value != NULL) { if (strcasecmp(none, new_value) == 0) { MBSTRG(filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE; @@ -764,7 +767,12 @@ MBSTRG(filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG; } else { MBSTRG(filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR; - MBSTRG(filter_illegal_substchar) = zend_atoi(new_value, new_value_length); + if (new_value_length 0) { + c = strtol(new_value, endptr, 0); + if (*endptr == '\0') { + MBSTRG(filter_illegal_substchar) = c; + } + } } } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
masugataFri Mar 10 16:15:35 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: fixed different value was returned in mb_get_info. http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.10r2=1.142.2.47.2.11diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.10 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.11 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.10 Thu Mar 2 00:39:57 2006 +++ php-src/ext/mbstring/mbstring.c Fri Mar 10 16:15:35 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.10 2006/03/02 00:39:57 yohgaki Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.11 2006/03/10 16:15:35 masugata Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -3699,13 +3699,15 @@ /* }}} */ -/* {{{ proto string mb_get_info([string type]) +/* {{{ proto mixed mb_get_info([string type]) Returns the current settings of mbstring */ PHP_FUNCTION(mb_get_info) { zval **type; char *name; int argc = ZEND_NUM_ARGS(); + const struct mb_overload_def *over_func; + zval *row; if (argc 0 || argc 1 || zend_get_parameters_ex(1, type) == FAILURE) { WRONG_PARAM_COUNT; @@ -3726,9 +3728,20 @@ if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_http_output_encoding))) != NULL) { add_assoc_string(return_value, http_output, name, 1); } - if ((name = (char *)mbfl_no_encoding2name(MBSTRG(func_overload))) != NULL) { - add_assoc_string(return_value, func_overload, name, 1); - } + if (MBSTRG(func_overload)){ + over_func = (mb_ovld[0]); + MAKE_STD_ZVAL(row); + array_init(row); + while (over_func-type 0) { + if ((MBSTRG(func_overload) over_func-type) == over_func-type ) { + add_assoc_string(row, over_func-orig_func, over_func-ovld_func, 1); + } + over_func++; + } + add_assoc_zval(return_value, func_overload, row); + } else { + add_assoc_string(return_value, func_overload, no overload, 1); + } } else if (!strcasecmp(internal_encoding, Z_STRVAL_PP(type))) { if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_internal_encoding))) != NULL) { RETVAL_STRING(name, 1); @@ -3742,9 +3755,18 @@ RETVAL_STRING(name, 1); } } else if (!strcasecmp(func_overload, Z_STRVAL_PP(type))) { - if ((name = (char *)mbfl_no_encoding2name(MBSTRG(func_overload))) != NULL) { - RETVAL_STRING(name, 1); - } + if (MBSTRG(func_overload)){ + over_func = (mb_ovld[0]); + array_init(return_value); + while (over_func-type 0) { + if ((MBSTRG(func_overload) over_func-type) == over_func-type ) { + add_assoc_string(return_value, over_func-orig_func, over_func-ovld_func, 1); + } + over_func++; + } + } else { + RETVAL_STRING(no overload, 1); + } } else { RETURN_FALSE; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
yohgaki Thu Mar 2 00:39:57 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: MFH add safe_mode num of parameter check http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.9r2=1.142.2.47.2.10diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.9 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.10 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.9 Mon Feb 6 10:42:58 2006 +++ php-src/ext/mbstring/mbstring.c Thu Mar 2 00:39:57 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.9 2006/02/06 10:42:58 tony2001 Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.10 2006/03/02 00:39:57 yohgaki Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -3513,6 +3513,11 @@ char *to_r = NULL; int to_len, i; +if (PG(safe_mode) (ZEND_NUM_ARGS() == 5)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, SAFE MODE Restriction in effect. The fifth parameter is disabled in SAFE MODE.); + RETURN_FALSE; + } + /* initialize */ mbfl_memory_device_init(device, 0, 0); mbfl_string_init(orig_str); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
tony2001Mon Feb 6 10:42:58 2006 UTC Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: MF51: initialize to_r http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.8r2=1.142.2.47.2.9diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.8 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.9 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.8 Sun Jan 1 13:46:54 2006 +++ php-src/ext/mbstring/mbstring.c Mon Feb 6 10:42:58 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.8 2006/01/01 13:46:54 sniper Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.9 2006/02/06 10:42:58 tony2001 Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -3510,7 +3510,7 @@ mbfl_memory_device device; /* automatic allocateable buffer for additional header */ const mbfl_language *lang; int err = 0; - char *to_r; + char *to_r = NULL; int to_len, i; /* initialize */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
iliaa Thu Dec 15 03:37:22 2005 EDT Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: MFH: Fixed possible memory corruption inside mb_strcut(). http://cvs.php.net/viewcvs.cgi/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.5r2=1.142.2.47.2.6diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.5 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.6 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.5 Mon Nov 21 23:21:19 2005 +++ php-src/ext/mbstring/mbstring.c Thu Dec 15 03:37:22 2005 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.5 2005/11/21 23:21:19 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.6 2005/12/15 03:37:22 iliaa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -2485,6 +2485,13 @@ } } + if (from Z_STRLEN_PP(arg1)) { + RETURN_FALSE; + } + if (((unsigned) from + (unsigned) len) Z_STRLEN_PP(arg1)) { + len = Z_STRLEN_PP(arg1) - from; + } + ret = mbfl_strcut(string, result, from, len); if (ret != NULL) { RETVAL_STRINGL(ret-val, ret-len, 0); /* the string is already strdup()'ed */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
I am preparing the patch for PHP_5_1, PHP_5_0 and HEAD. It will be applied very soon. Rui On Tue, 22 Nov 2005 04:01:36 +0200 (EET) Jani Taskinen [EMAIL PROTECTED] wrote: Doesn't this problem exist in PHP_5_1 branch? --Jani On Mon, 21 Nov 2005, Rui Hirokawa wrote: hirokawaMon Nov 21 18:21:24 2005 EDT Modified files: (Branch: PHP_4_4) /php-src/ext/mbstringmbstring.c Log: fixed #35307 unexpected header can be injected to mb_send_mail() (the patch is made by masugata). http://cvs.php.net/diff.php/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.4r2=1.142.2.47.2.5ty=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.4 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.5 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.4 Sat Nov 19 01:39:39 2005 +++ php-src/ext/mbstring/mbstring.c Mon Nov 21 18:21:19 2005 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.4 2005/11/19 06:39:39 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.5 2005/11/21 23:21:19 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -3467,6 +3467,22 @@ * Sends an email message with MIME scheme */ #if HAVE_SENDMAIL +#define SKIP_LONG_HEADER_SEP_MBSTRING(str, pos) \ + if (str[pos] == '\r' str[pos + 1] == '\n' (str[pos + 2] == ' ' || str[pos + 2] == '\t')) {\ + pos += 3; \ + while (str[pos] == ' ' || str[pos] == '\t') { \ + pos++; \ + } \ + continue; \ + } \ + else if (str[pos] == '\n' (str[pos + 1] == ' ' || str[pos + 1] == '\t')) { \ + pos += 2; \ + while (str[pos] == ' ' || str[pos] == '\t') { \ + pos++; \ + } \ + continue; \ + } \ + PHP_FUNCTION(mb_send_mail) { int argc, n; @@ -3482,6 +3498,8 @@ mbfl_memory_device device; /* automatic allocateable buffer for additional header */ const mbfl_language *lang; int err = 0; + char *to_r; + int to_len, i; /* initialize */ mbfl_memory_device_init(device, 0, 0); @@ -3508,6 +3526,32 @@ convert_to_string_ex(argv[0]); if (Z_STRVAL_PP(argv[0])) { to = Z_STRVAL_PP(argv[0]); + to_len = Z_STRLEN_PP(argv[0]); + if (to_len 0) { + to_r = estrndup(to, to_len); + for (; to_len; to_len--) { + if (!isspace((unsigned char) to_r[to_len - 1])) { + break; + } + to_r[to_len - 1] = '\0'; + } + for (i = 0; to_r[i]; i++) { + if (iscntrl((unsigned char) to_r[i])) { + /* According to RFC 822, section 3.1.1 long headers may be +separated into +* parts using CRLF followed at least one linear-white-space +character ('\t' or ' '). +* To prevent these separators from being replaced with a space, +we use the +* SKIP_LONG_HEADER_SEP_MBSTRING to skip over them. +*/ + SKIP_LONG_HEADER_SEP_MBSTRING(to_r, i); + to_r[i] = ' '; + } + } + } else { + to_r = to; + } } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, Missing To: field); err = 1; @@ -3606,12 +3650,15 @@ extra_cmd = php_escape_shell_cmd(extra_cmd); } - if (!err php_mail(to, subject, message, headers, extra_cmd TSRMLS_CC)) { + if (!err
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
hirokawaMon Nov 21 18:21:24 2005 EDT Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: fixed #35307 unexpected header can be injected to mb_send_mail() (the patch is made by masugata). http://cvs.php.net/diff.php/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.4r2=1.142.2.47.2.5ty=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.4 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.5 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.4 Sat Nov 19 01:39:39 2005 +++ php-src/ext/mbstring/mbstring.c Mon Nov 21 18:21:19 2005 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.4 2005/11/19 06:39:39 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.5 2005/11/21 23:21:19 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -3467,6 +3467,22 @@ * Sends an email message with MIME scheme */ #if HAVE_SENDMAIL +#define SKIP_LONG_HEADER_SEP_MBSTRING(str, pos) \ + if (str[pos] == '\r' str[pos + 1] == '\n' (str[pos + 2] == ' ' || str[pos + 2] == '\t')) {\ + pos += 3; \ + while (str[pos] == ' ' || str[pos] == '\t') { \ + pos++; \ + } \ + continue; \ + } \ + else if (str[pos] == '\n' (str[pos + 1] == ' ' || str[pos + 1] == '\t')) { \ + pos += 2; \ + while (str[pos] == ' ' || str[pos] == '\t') { \ + pos++; \ + } \ + continue; \ + } \ + PHP_FUNCTION(mb_send_mail) { int argc, n; @@ -3482,6 +3498,8 @@ mbfl_memory_device device; /* automatic allocateable buffer for additional header */ const mbfl_language *lang; int err = 0; + char *to_r; + int to_len, i; /* initialize */ mbfl_memory_device_init(device, 0, 0); @@ -3508,6 +3526,32 @@ convert_to_string_ex(argv[0]); if (Z_STRVAL_PP(argv[0])) { to = Z_STRVAL_PP(argv[0]); + to_len = Z_STRLEN_PP(argv[0]); + if (to_len 0) { + to_r = estrndup(to, to_len); + for (; to_len; to_len--) { + if (!isspace((unsigned char) to_r[to_len - 1])) { + break; + } + to_r[to_len - 1] = '\0'; + } + for (i = 0; to_r[i]; i++) { + if (iscntrl((unsigned char) to_r[i])) { + /* According to RFC 822, section 3.1.1 long headers may be +separated into +* parts using CRLF followed at least one linear-white-space +character ('\t' or ' '). +* To prevent these separators from being replaced with a space, +we use the +* SKIP_LONG_HEADER_SEP_MBSTRING to skip over them. +*/ + SKIP_LONG_HEADER_SEP_MBSTRING(to_r, i); + to_r[i] = ' '; + } + } + } else { + to_r = to; + } } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, Missing To: field); err = 1; @@ -3606,12 +3650,15 @@ extra_cmd = php_escape_shell_cmd(extra_cmd); } - if (!err php_mail(to, subject, message, headers, extra_cmd TSRMLS_CC)) { + if (!err php_mail(to_r, subject, message, headers, extra_cmd TSRMLS_CC)) { RETVAL_TRUE; } else { RETVAL_FALSE; } + if (to_r != to) { + efree(to_r); + } if (extra_cmd) {
Re: [PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
Doesn't this problem exist in PHP_5_1 branch? --Jani On Mon, 21 Nov 2005, Rui Hirokawa wrote: hirokawaMon Nov 21 18:21:24 2005 EDT Modified files: (Branch: PHP_4_4) /php-src/ext/mbstringmbstring.c Log: fixed #35307 unexpected header can be injected to mb_send_mail() (the patch is made by masugata). http://cvs.php.net/diff.php/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.4r2=1.142.2.47.2.5ty=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.4 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.5 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.4 Sat Nov 19 01:39:39 2005 +++ php-src/ext/mbstring/mbstring.c Mon Nov 21 18:21:19 2005 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.4 2005/11/19 06:39:39 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.5 2005/11/21 23:21:19 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -3467,6 +3467,22 @@ * Sends an email message with MIME scheme */ #if HAVE_SENDMAIL +#define SKIP_LONG_HEADER_SEP_MBSTRING(str, pos) \ + if (str[pos] == '\r' str[pos + 1] == '\n' (str[pos + 2] == ' ' || str[pos + 2] == '\t')) {\ + pos += 3; \ + while (str[pos] == ' ' || str[pos] == '\t') { \ + pos++; \ + } \ + continue; \ + } \ + else if (str[pos] == '\n' (str[pos + 1] == ' ' || str[pos + 1] == '\t')) { \ + pos += 2; \ + while (str[pos] == ' ' || str[pos] == '\t') { \ + pos++; \ + } \ + continue; \ + } \ + PHP_FUNCTION(mb_send_mail) { int argc, n; @@ -3482,6 +3498,8 @@ mbfl_memory_device device; /* automatic allocateable buffer for additional header */ const mbfl_language *lang; int err = 0; + char *to_r; + int to_len, i; /* initialize */ mbfl_memory_device_init(device, 0, 0); @@ -3508,6 +3526,32 @@ convert_to_string_ex(argv[0]); if (Z_STRVAL_PP(argv[0])) { to = Z_STRVAL_PP(argv[0]); + to_len = Z_STRLEN_PP(argv[0]); + if (to_len 0) { + to_r = estrndup(to, to_len); + for (; to_len; to_len--) { + if (!isspace((unsigned char) to_r[to_len - 1])) { + break; + } + to_r[to_len - 1] = '\0'; + } + for (i = 0; to_r[i]; i++) { + if (iscntrl((unsigned char) to_r[i])) { + /* According to RFC 822, section 3.1.1 long headers may be +separated into +* parts using CRLF followed at least one linear-white-space +character ('\t' or ' '). +* To prevent these separators from being replaced with a space, +we use the +* SKIP_LONG_HEADER_SEP_MBSTRING to skip over them. +*/ + SKIP_LONG_HEADER_SEP_MBSTRING(to_r, i); + to_r[i] = ' '; + } + } + } else { + to_r = to; + } } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, Missing To: field); err = 1; @@ -3606,12 +3650,15 @@ extra_cmd = php_escape_shell_cmd(extra_cmd); } - if (!err php_mail(to, subject, message, headers, extra_cmd TSRMLS_CC)) { + if (!err php_mail(to_r, subject, message, headers, extra_cmd TSRMLS_CC)) { RETVAL_TRUE; } else { RETVAL_FALSE; } + if (to_r != to)
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
hirokawaSat Nov 19 01:39:43 2005 EDT Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: MFH: fixed #35253 length of the encoded string vilolates a RFC. http://cvs.php.net/diff.php/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.3r2=1.142.2.47.2.4ty=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.3 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.4 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.3 Fri Nov 4 20:14:05 2005 +++ php-src/ext/mbstring/mbstring.c Sat Nov 19 01:39:39 2005 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.3 2005/11/05 01:14:05 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.4 2005/11/19 06:39:39 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -2924,16 +2924,17 @@ } /* }}} */ -/* {{{ proto string mb_encode_mimeheader(string str [, string charset [, string transfer-encoding [, string linefeed]]]) +/* {{{ proto string mb_encode_mimeheader(string str [, string charset [, string transfer-encoding [, string linefeed [, int indent) Converts the string to MIME encoded-word in the format of =?charset?(B|Q)?encoded_string?= */ PHP_FUNCTION(mb_encode_mimeheader) { - pval **argv[4]; + pval **argv[5]; enum mbfl_no_encoding charset, transenc; mbfl_string string, result, *ret; char *p, *linefeed; + int indent; - if (ZEND_NUM_ARGS() 1 || ZEND_NUM_ARGS() 4 || zend_get_parameters_array_ex(ZEND_NUM_ARGS(), argv) == FAILURE) { + if (ZEND_NUM_ARGS() 1 || ZEND_NUM_ARGS() 5 || zend_get_parameters_array_ex(ZEND_NUM_ARGS(), argv) == FAILURE) { WRONG_PARAM_COUNT; } @@ -2970,6 +2971,12 @@ linefeed = Z_STRVAL_PP(argv[3]); } + indent = 0; + if (ZEND_NUM_ARGS() = 5) { + convert_to_long_ex(argv[4]); + indent = Z_LVAL_PP(argv[4]); + } + convert_to_string_ex(argv[0]); mbfl_string_init(string); mbfl_string_init(result); @@ -2977,7 +2984,7 @@ string.no_encoding = MBSTRG(current_internal_encoding); string.val = Z_STRVAL_PP(argv[0]); string.len = Z_STRLEN_PP(argv[0]); - ret = mbfl_mime_header_encode(string, result, charset, transenc, linefeed, 0); + ret = mbfl_mime_header_encode(string, result, charset, transenc, linefeed, indent); if (ret != NULL) { RETVAL_STRINGL((char *)ret-val, ret-len, 0) /* the string is already strdup()'ed */ } else { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
hirokawaFri Nov 4 11:13:45 2005 EDT Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: removed mail.force_extra_parameters which is unsuppoted in php4. http://cvs.php.net/diff.php/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.1r2=1.142.2.47.2.2ty=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.1 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.2 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.1 Wed Sep 21 09:19:19 2005 +++ php-src/ext/mbstring/mbstring.c Fri Nov 4 11:13:44 2005 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.1 2005/09/21 13:19:19 iliaa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.2 2005/11/04 16:13:44 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -3474,7 +3474,6 @@ body_enc; /* body transfar encoding */ mbfl_memory_device device; /* automatic allocateable buffer for additional header */ const mbfl_language *lang; - char *force_extra_parameters = INI_STR(mail.force_extra_parameters); int err = 0; /* initialize */ @@ -3596,9 +3595,7 @@ extra_cmd = Z_STRVAL_PP(argv[4]); } - if (force_extra_parameters) { - extra_cmd = estrdup(force_extra_parameters); - } else if (extra_cmd) { +if (extra_cmd) { extra_cmd = php_escape_shell_cmd(extra_cmd); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
On Fri, 4 Nov 2005, Rui Hirokawa wrote: hirokawa Fri Nov 4 11:13:45 2005 EDT Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: removed mail.force_extra_parameters which is unsuppoted in php4. } - if (force_extra_parameters) { - extra_cmd = estrdup(force_extra_parameters); - } else if (extra_cmd) { +if (extra_cmd) { extra_cmd = php_escape_shell_cmd(extra_cmd); } Please fix your whitespace issues there. And does this close a bug, or something else? regards, Derick -- Derick Rethans http://derickrethans.nl | http://ez.no | http://xdebug.org -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
hirokawaFri Nov 4 20:14:08 2005 EDT Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: fixed white space issue. http://cvs.php.net/diff.php/php-src/ext/mbstring/mbstring.c?r1=1.142.2.47.2.2r2=1.142.2.47.2.3ty=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.142.2.47.2.2 php-src/ext/mbstring/mbstring.c:1.142.2.47.2.3 --- php-src/ext/mbstring/mbstring.c:1.142.2.47.2.2 Fri Nov 4 11:13:44 2005 +++ php-src/ext/mbstring/mbstring.c Fri Nov 4 20:14:05 2005 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.142.2.47.2.2 2005/11/04 16:13:44 hirokawa Exp $ */ +/* $Id: mbstring.c,v 1.142.2.47.2.3 2005/11/05 01:14:05 hirokawa Exp $ */ /* * PHP4 Multibyte String module mbstring @@ -3595,7 +3595,7 @@ extra_cmd = Z_STRVAL_PP(argv[4]); } -if (extra_cmd) { + if (extra_cmd) { extra_cmd = php_escape_shell_cmd(extra_cmd); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
white space issue was fixed now. This is a bug fix patch. 5th parameter of mb_send_mail cannot be used since PHP 4.4.1 by this bug. mail.force_extra_parameters is supported in PHP5, but, this patch was also applied to PHP_4_4 by unknown reasons. Rui On Fri, 4 Nov 2005 18:27:38 +0100 (CET) Derick Rethans [EMAIL PROTECTED] wrote: On Fri, 4 Nov 2005, Rui Hirokawa wrote: hirokawaFri Nov 4 11:13:45 2005 EDT Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: removed mail.force_extra_parameters which is unsuppoted in php4. } - if (force_extra_parameters) { - extra_cmd = estrdup(force_extra_parameters); - } else if (extra_cmd) { +if (extra_cmd) { extra_cmd = php_escape_shell_cmd(extra_cmd); } Please fix your whitespace issues there. And does this close a bug, or something else? regards, Derick -- Derick Rethans http://derickrethans.nl | http://ez.no | http://xdebug.org -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.362 / Virus Database: 267.12.8/161 - Release Date: 2005/11/03 -- Rui Hirokawa [EMAIL PROTECTED] -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.362 / Virus Database: 267.12.8/161 - Release Date: 2005/11/03 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_4_4) /ext/mbstring mbstring.c
Derick, This bug is #34830 and fixed in CVS. Rui - white space issue was fixed now. This is a bug fix patch. 5th parameter of mb_send_mail cannot be used since PHP 4.4.1 by this bug. mail.force_extra_parameters is supported in PHP5, but, this patch was also applied to PHP_4_4 by unknown reasons. Rui On Fri, 4 Nov 2005 18:27:38 +0100 (CET) Derick Rethans [EMAIL PROTECTED] wrote: On Fri, 4 Nov 2005, Rui Hirokawa wrote: hirokawaFri Nov 4 11:13:45 2005 EDT Modified files: (Branch: PHP_4_4) /php-src/ext/mbstring mbstring.c Log: removed mail.force_extra_parameters which is unsuppoted in php4. } - if (force_extra_parameters) { - extra_cmd = estrdup(force_extra_parameters); - } else if (extra_cmd) { +if (extra_cmd) { extra_cmd = php_escape_shell_cmd(extra_cmd); } Please fix your whitespace issues there. And does this close a bug, or something else? regards, Derick -- Derick Rethans http://derickrethans.nl | http://ez.no | http://xdebug.org -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.362 / Virus Database: 267.12.8/161 - Release Date: 2005/11/03 -- Rui Hirokawa [EMAIL PROTECTED] -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.362 / Virus Database: 267.12.8/161 - Release Date: 2005/11/03 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php