From 683b4f7a2be0479182f229cf84f502d19bd792d9 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 21 Jul 2012 00:46:32 +0800 Subject: merge 9eb5cb6571698ca1c623ad3e02c8727c4b0c9a09 to 5.3 --- ext/standard/tests/file/umask_variation3.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/standard/tests/file/umask_variation3.phpt b/ext/standard/tests/file/umask_variation3.phpt index 1483dc430e..cb34294fea 100644 --- a/ext/standard/tests/file/umask_variation3.phpt +++ b/ext/standard/tests/file/umask_variation3.phpt @@ -110,7 +110,7 @@ foreach($inputs as $key =>$value) { echo "\n--$key--\n"; umask(0); var_dump(umask($value)); - var_dump( umask()); + var_dump(umask() & 0777); }; ?> -- cgit v1.2.1 From cc30524c89fa2255944dc3c70f8d41a6c23faa2a Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 21 Jul 2012 23:26:18 +0800 Subject: Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault) --- NEWS | 4 ++++ ext/spl/spl_iterators.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/NEWS b/NEWS index 902185cffe..e6b51a9140 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,10 @@ PHP NEWS - DateTime: . Fixed Bug #62500 (Segfault in DateInterval class when extended). (Laruence) +- SPL: + . Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance + gives Segmentation fault). (Laruence, Gustavo) + 14 Jun 2012, PHP 5.3.14 - CLI SAPI: diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c index eecd483ba7..a46b7d4e48 100755 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -1287,6 +1287,8 @@ static union _zend_function *spl_dual_it_get_method(zval **object_ptr, char *met *object_ptr = intern->inner.zobject; function_handler = Z_OBJ_HT_P(*object_ptr)->get_method(object_ptr, method, method_len TSRMLS_CC); } + } else { + *object_ptr = intern->inner.zobject; } } return function_handler; -- cgit v1.2.1 From ead076bac613bc69d83ab65be2efb68feada912c Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 21 Jul 2012 23:27:09 +0800 Subject: Fix test failed --- .../tests/general_functions/uniqid_basic.phpt | 145 ++++++++++----------- 1 file changed, 72 insertions(+), 73 deletions(-) diff --git a/ext/standard/tests/general_functions/uniqid_basic.phpt b/ext/standard/tests/general_functions/uniqid_basic.phpt index 9a9c573327..2da832b8ed 100644 --- a/ext/standard/tests/general_functions/uniqid_basic.phpt +++ b/ext/standard/tests/general_functions/uniqid_basic.phpt @@ -1,73 +1,72 @@ ---TEST-- -Test uniqid() function : basic functionality ---FILE-- - -===DONE=== ---EXPECTF-- -*** Testing uniqid() : basic functionality *** - -uniqid() without a prefix -string(13) "%s" -string(23) "%s.%s" -string(13) "%s" - - -uniqid() with a prefix -string(18) "99999%s" -string(28) "99999%s.%s" -string(18) "99999%s" - -string(18) "999994%s" -string(28) "999994%s.%s" -string(18) "999994%s" - -string(17) "1050%s" -string(27) "1050%s.%s" -string(17) "1050%s" - -string(13) "%s" -string(23) "%s.%s" -string(13) "%s" - -string(14) "1%s" -string(24) "1%s.%s" -string(14) "1%s" - -string(13) "%s" -string(23) "%s.%s" -string(13) "%s" - -===DONE=== - \ No newline at end of file +--TEST-- +Test uniqid() function : basic functionality +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing uniqid() : basic functionality *** + +uniqid() without a prefix +string(13) "%s" +string(23) "%s.%s" +string(13) "%s" + + +uniqid() with a prefix +string(18) "99999%s" +string(28) "99999%s.%s" +string(18) "99999%s" + +string(18) "99999%s" +string(28) "99999%s.%s" +string(18) "99999%s" + +string(17) "1050%s" +string(27) "1050%s.%s" +string(17) "1050%s" + +string(13) "%s" +string(23) "%s.%s" +string(13) "%s" + +string(14) "1%s" +string(24) "1%s.%s" +string(14) "1%s" + +string(13) "%s" +string(23) "%s.%s" +string(13) "%s" + +===DONE=== -- cgit v1.2.1 From 777b6679a41abe40c4211c2f2a906a5218680872 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 21 Jul 2012 23:30:32 +0800 Subject: missed the test script --- ext/spl/tests/bug62616.phpt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 ext/spl/tests/bug62616.phpt diff --git a/ext/spl/tests/bug62616.phpt b/ext/spl/tests/bug62616.phpt new file mode 100644 index 0000000000..4e4be94491 --- /dev/null +++ b/ext/spl/tests/bug62616.phpt @@ -0,0 +1,15 @@ +--TEST-- +Bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault) +--FILE-- +count()); + +$ii = new IteratorIterator($ai); + +var_dump($ii->count()); +?> +--EXPECTF-- +int(2) +int(2) -- cgit v1.2.1 From ffa8461bfebebd8158cdb26ad5f3439c527545f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Schl=C3=BCter?= Date: Sun, 22 Jul 2012 22:45:39 +0200 Subject: merge 5.3.15 NEWS --- NEWS | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 71 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index e6b51a9140..8f5512367a 100644 --- a/NEWS +++ b/NEWS @@ -2,10 +2,6 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2012, PHP 5.3.16 -?? ??? 2012, PHP 5.3.15 - (NEWS will be merged after release by johannes. Formerging changes to the - PHP-5.3.15 release branch talk to johannes) - - CURL: . Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false). (r.hampartsumyan@gmail.com, Laruence) @@ -17,6 +13,77 @@ PHP NEWS . Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault). (Laruence, Gustavo) +19 Jul 2012, PHP 5.3.15 + +- Zend Engine: + . Fixed bug #51094 (parse_ini_file() with INI_SCANNER_RAW cuts a value that + includes a semi-colon). (Pierrick) + +- COM: + . Fixed bug #62146 com_dotnet cannot be built shared. (Johannes) + +- Core: + . Fixed potential overflow in _php_stream_scandir, CVE-2012-2688. (Jason + Powell, Stas) + . Fixed bug #62432 (ReflectionMethod random corrupt memory on high + concurrent). (Johannes) + . Fixed bug #62443 (Crypt SHA256/512 Segfaults With Malformed + Salt). (Anthony Ferrara) + +- Fileinfo: + . Fixed magic file regex support. (Felipe) + +- FPM: + . Fixed bug #61045 (fpm don't send error log to fastcgi clients). (fat) + . Fixed bug #61835 (php-fpm is not allowed to run as root). (fat) + . Fixed bug #61295 (php-fpm should not fail with commented 'user' + for non-root start). (fat) + . Fixed bug #61026 (FPM pools can listen on the same address). (fat) + . Fixed bug #62033 (php-fpm exits with status 0 on some failures to start). + (fat) + . Fixed bug #62153 (when using unix sockets, multiples FPM instances + can be launched without errors). (fat) + . Fixed bug #62160 (Add process.priority to set nice(2) priorities). (fat) + . Fixed bug #61218 (FPM drops connection while receiving some binary values + in FastCGI requests). (fat) + . Fixed bug #62205 (php-fpm segfaults (null passed to strstr)). (fat) + +- Intl: + . Fixed bug #62083 (grapheme_extract() memory leaks). (Gustavo) + . Fixed bug #62081 (IntlDateFormatter constructor leaks memory when called + twice). (Gustavo) + . Fixed bug #62070 (Collator::getSortKey() returns garbage). (Gustavo) + . Fixed bug #62017 (datefmt_create with incorrectly encoded timezone leaks + pattern). (Gustavo) + . Fixed bug #60785 (memory leak in IntlDateFormatter constructor). (Gustavo) + +- JSON: + . Reverted fix for bug #61537. (Johannes) + +- Phar: + . Fixed bug #62227 (Invalid phar stream path causes crash). (Felipe) + +- Reflection: + . Fixed bug #62384 (Attempting to invoke a Closure more than once causes + segfault). (Felipe) + . Fixed bug #62202 (ReflectionParameter::getDefaultValue() memory leaks + with constant). (Laruence) + +- SPL: + . Fixed bug #62262 (RecursiveArrayIterator does not implement Countable). + (Nikita Popov) + +- SQLite: + . Fixed open_basedir bypass, CVE-2012-3365. (Johannes, reported by Yury + Maryshev) + +- XML Writer: + . Fixed bug #62064 (memory leak in the XML Writer module). + (jean-pierre dot lozi at lip6 dot fr) + +- Zip: + . Upgraded libzip to 0.10.1 (Anatoliy) + 14 Jun 2012, PHP 5.3.14 - CLI SAPI: -- cgit v1.2.1 From 5799ebdb0cafb2de1dbb18cfe780976c98dbaeac Mon Sep 17 00:00:00 2001 From: Rasmus Lerdorf Date: Tue, 24 Jul 2012 16:28:49 -0700 Subject: Fix bug #62654 --- sapi/fpm/fpm/fpm_sockets.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sapi/fpm/fpm/fpm_sockets.c b/sapi/fpm/fpm/fpm_sockets.c index d24dcccc9a..f56b9cfbd1 100644 --- a/sapi/fpm/fpm/fpm_sockets.c +++ b/sapi/fpm/fpm/fpm_sockets.c @@ -455,11 +455,11 @@ int fpm_socket_get_listening_queue(int sock, unsigned *cur_lq, unsigned *max_lq) #endif -int fpm_socket_unix_test_connect(struct sockaddr_un *sun, size_t socklen) /* {{{ */ +int fpm_socket_unix_test_connect(struct sockaddr_un *sock, size_t socklen) /* {{{ */ { int fd; - if (!sun || sun->sun_family != AF_UNIX) { + if (!sock || sock->sun_family != AF_UNIX) { return -1; } @@ -467,7 +467,7 @@ int fpm_socket_unix_test_connect(struct sockaddr_un *sun, size_t socklen) /* {{{ return -1; } - if (connect(fd, (struct sockaddr *)sun, socklen) == -1) { + if (connect(fd, (struct sockaddr *)sock, socklen) == -1) { return -1; } -- cgit v1.2.1 From ef7286a42f0d85cc359f1d64678f859d6c3f832e Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 28 Jul 2012 00:50:45 +0800 Subject: Fixed bug #60194 (--with-zend-multibyte and --enable-debug reports LEAK with run-test.php) It's not a big deal, just because lexer will read the char after cursor before leaving --- NEWS | 4 ++++ Zend/zend_language_scanner.c | 4 ++-- Zend/zend_language_scanner.l | 2 +- Zend/zend_language_scanner_defs.h | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index 8f5512367a..5aa35d7e20 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,10 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2012, PHP 5.3.16 +- Core: + . Fixed bug #60194 (--with-zend-multibyte and --enable-debug reports LEAK + with run-test.php). (Laruence) + - CURL: . Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false). (r.hampartsumyan@gmail.com, Laruence) diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index 1d0ada7a64..e3fc576e91 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Wed Feb 15 17:38:31 2012 */ +/* Generated by re2c 0.13.5 on Sat Jul 28 00:45:37 2012 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -287,7 +287,7 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC) zend_multibyte_set_filter(NULL TSRMLS_CC); if (!SCNG(input_filter)) { - SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+1); + SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+2); memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1); SCNG(script_filtered_size) = SCNG(script_org_size); } else { diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 9b2e453dd6..266162747e 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -285,7 +285,7 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC) zend_multibyte_set_filter(NULL TSRMLS_CC); if (!SCNG(input_filter)) { - SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+1); + SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+2); memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1); SCNG(script_filtered_size) = SCNG(script_org_size); } else { diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h index adaedcf1aa..d1955a88ef 100644 --- a/Zend/zend_language_scanner_defs.h +++ b/Zend/zend_language_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Wed Feb 15 17:38:31 2012 */ +/* Generated by re2c 0.13.5 on Sat Jul 28 00:45:37 2012 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { -- cgit v1.2.1 From b477a84026a39a58452af9676b4b74607e83e2f8 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 28 Jul 2012 17:00:05 +0800 Subject: Fixed bug #60194 for eavl same reason here --- Zend/zend_language_scanner.c | 4 ++-- Zend/zend_language_scanner.l | 2 +- Zend/zend_language_scanner_defs.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index e3fc576e91..15a48fad8c 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Sat Jul 28 00:45:37 2012 */ +/* Generated by re2c 0.13.5 on Sat Jul 28 16:59:07 2012 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -445,7 +445,7 @@ ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_D zend_multibyte_set_filter(CG(internal_encoding) TSRMLS_CC); if (!SCNG(input_filter)) { - SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+1); + SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+2); memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1); SCNG(script_filtered_size) = SCNG(script_org_size); } else { diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 266162747e..c92bf2b107 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -443,7 +443,7 @@ ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_D zend_multibyte_set_filter(CG(internal_encoding) TSRMLS_CC); if (!SCNG(input_filter)) { - SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+1); + SCNG(script_filtered) = (unsigned char*)emalloc(SCNG(script_org_size)+2); memcpy(SCNG(script_filtered), SCNG(script_org), SCNG(script_org_size)+1); SCNG(script_filtered_size) = SCNG(script_org_size); } else { diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h index d1955a88ef..02a2a39500 100644 --- a/Zend/zend_language_scanner_defs.h +++ b/Zend/zend_language_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Sat Jul 28 00:45:37 2012 */ +/* Generated by re2c 0.13.5 on Sat Jul 28 16:59:07 2012 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { -- cgit v1.2.1 From 068fc008c6828c2e045064a831ecb90136c6365b Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sat, 28 Jul 2012 19:05:13 -0300 Subject: - Fixed bug #57933 (Wrong table type used in phpinfo output) patch by: selsky at columbia dot edu --- ext/fileinfo/fileinfo.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/fileinfo/fileinfo.c b/ext/fileinfo/fileinfo.c index 36c5e392eb..0c82898e43 100644 --- a/ext/fileinfo/fileinfo.c +++ b/ext/fileinfo/fileinfo.c @@ -271,7 +271,7 @@ ZEND_GET_MODULE(fileinfo) PHP_MINFO_FUNCTION(fileinfo) { php_info_print_table_start(); - php_info_print_table_header(2, "fileinfo support", "enabled"); + php_info_print_table_row(2, "fileinfo support", "enabled"); php_info_print_table_row(2, "version", PHP_FILEINFO_VERSION); php_info_print_table_end(); } -- cgit v1.2.1 From 015ee3b2c88d3e7bf984c7414b4de6c2a465b6a9 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sun, 29 Jul 2012 12:17:43 +0800 Subject: Skip test while zend_mm is disabled --- Zend/tests/bug55509.phpt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Zend/tests/bug55509.phpt b/Zend/tests/bug55509.phpt index b78fceb0da..5268789df6 100644 --- a/Zend/tests/bug55509.phpt +++ b/Zend/tests/bug55509.phpt @@ -5,6 +5,12 @@ Bug #55509 (segfault on x86_64 using more than 2G memory) if (PHP_INT_SIZE == 4) { die('skip Not for 32-bits OS'); } + +$zend_mm_enabled = getenv("USE_ZEND_ALLOC"); +if ($zend_mm_enabled === "0") { + die("skip Zend MM disabled"); +} + if (getenv("SKIP_SLOW_TESTS")) die("skip slow test"); // check the available memory if (PHP_OS == 'Linux') { -- cgit v1.2.1 From 880a6cee0068e980fd1eed735675d9b7d37968a0 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sun, 29 Jul 2012 13:25:31 +0800 Subject: Skip test while zend mm is disabled --- ext/oci8/tests/pecl_bug10194.phpt | 3 +++ ext/oci8/tests/pecl_bug10194_blob_64.phpt | 3 +++ tests/lang/bug45392.phpt | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/ext/oci8/tests/pecl_bug10194.phpt b/ext/oci8/tests/pecl_bug10194.phpt index 9947e15dbc..3c1c7887c2 100644 --- a/ext/oci8/tests/pecl_bug10194.phpt +++ b/ext/oci8/tests/pecl_bug10194.phpt @@ -5,6 +5,9 @@ PECL Bug #10194 (segfault in Instant Client when memory_limit is reached inside $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs require(dirname(__FILE__).'/skipif.inc'); if (getenv('SKIP_SLOW_TESTS')) die('skip slow tests excluded by request'); +if (getenv("USE_ZEND_ALLOC") === "0") { + die("skip Zend MM disabled"); +} ?> --INI-- memory_limit=10M diff --git a/ext/oci8/tests/pecl_bug10194_blob_64.phpt b/ext/oci8/tests/pecl_bug10194_blob_64.phpt index 45788a41b4..e1a4cc034e 100644 --- a/ext/oci8/tests/pecl_bug10194_blob_64.phpt +++ b/ext/oci8/tests/pecl_bug10194_blob_64.phpt @@ -6,6 +6,9 @@ $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on t require(dirname(__FILE__).'/skipif.inc'); if (getenv('SKIP_SLOW_TESTS')) die('skip slow tests excluded by request'); if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platforms only"); +if (getenv("USE_ZEND_ALLOC") === "0") { + die("skip Zend MM disabled"); +} ?> --INI-- memory_limit=6M diff --git a/tests/lang/bug45392.phpt b/tests/lang/bug45392.phpt index ae84cd9d1d..78876c7c80 100644 --- a/tests/lang/bug45392.phpt +++ b/tests/lang/bug45392.phpt @@ -2,6 +2,11 @@ Bug #45392 (ob_start()/ob_end_clean() and memory_limit) --INI-- display_errors=stderr +--SKIPIF-- + Date: Sun, 29 Jul 2012 14:30:01 +0800 Subject: Sike test while there is no zend mm max_size guard --- ext/standard/tests/streams/bug61115-1.phpt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ext/standard/tests/streams/bug61115-1.phpt b/ext/standard/tests/streams/bug61115-1.phpt index 89374e7353..99e2f7929c 100644 --- a/ext/standard/tests/streams/bug61115-1.phpt +++ b/ext/standard/tests/streams/bug61115-1.phpt @@ -1,5 +1,11 @@ --TEST-- Bug #61115: Stream related segfault on fatal error in php_stream_context_del_link - variation 1 +--SKIPIF-- + --FILE-- Date: Mon, 30 Jul 2012 10:25:17 +0200 Subject: Remove executable bit from files --- ext/intl/CREDITS | 0 ext/intl/TODO | 0 ext/intl/collator/collator.c | 0 ext/intl/collator/collator.h | 0 ext/intl/collator/collator_attr.c | 0 ext/intl/collator/collator_attr.h | 0 ext/intl/collator/collator_class.c | 0 ext/intl/collator/collator_class.h | 0 ext/intl/collator/collator_compare.c | 0 ext/intl/collator/collator_compare.h | 0 ext/intl/collator/collator_convert.c | 0 ext/intl/collator/collator_convert.h | 0 ext/intl/collator/collator_create.c | 0 ext/intl/collator/collator_create.h | 0 ext/intl/collator/collator_error.c | 0 ext/intl/collator/collator_error.h | 0 ext/intl/collator/collator_is_numeric.c | 0 ext/intl/collator/collator_is_numeric.h | 0 ext/intl/collator/collator_locale.c | 0 ext/intl/collator/collator_locale.h | 0 ext/intl/collator/collator_sort.c | 0 ext/intl/collator/collator_sort.h | 0 ext/intl/common/common_error.c | 0 ext/intl/common/common_error.h | 0 ext/intl/config.m4 | 0 ext/intl/config.w32 | 0 ext/intl/dateformat/dateformat.c | 0 ext/intl/dateformat/dateformat.h | 0 ext/intl/dateformat/dateformat_attr.c | 0 ext/intl/dateformat/dateformat_attr.h | 0 ext/intl/dateformat/dateformat_class.c | 0 ext/intl/dateformat/dateformat_class.h | 0 ext/intl/dateformat/dateformat_data.c | 0 ext/intl/dateformat/dateformat_data.h | 0 ext/intl/dateformat/dateformat_format.c | 0 ext/intl/dateformat/dateformat_format.h | 0 ext/intl/dateformat/dateformat_parse.c | 0 ext/intl/dateformat/dateformat_parse.h | 0 ext/intl/doc/Tutorial.txt | 0 ext/intl/doc/collator_api.php | 0 ext/intl/doc/common_api.php | 0 ext/intl/doc/datefmt_api.php | 0 ext/intl/doc/formatter_api.php | 0 ext/intl/doc/grapheme_api.php | 0 ext/intl/doc/locale_api.php | 0 ext/intl/doc/msgfmt_api.php | 0 ext/intl/doc/normalizer_api.php | 0 ext/intl/formatter/formatter.c | 0 ext/intl/formatter/formatter.h | 0 ext/intl/formatter/formatter_attr.c | 0 ext/intl/formatter/formatter_attr.h | 0 ext/intl/formatter/formatter_class.c | 0 ext/intl/formatter/formatter_class.h | 0 ext/intl/formatter/formatter_data.c | 0 ext/intl/formatter/formatter_data.h | 0 ext/intl/formatter/formatter_format.c | 0 ext/intl/formatter/formatter_format.h | 0 ext/intl/formatter/formatter_main.c | 0 ext/intl/formatter/formatter_main.h | 0 ext/intl/formatter/formatter_parse.c | 0 ext/intl/formatter/formatter_parse.h | 0 ext/intl/grapheme/grapheme.h | 0 ext/intl/grapheme/grapheme_string.c | 0 ext/intl/grapheme/grapheme_util.c | 0 ext/intl/grapheme/grapheme_util.h | 0 ext/intl/intl_common.h | 0 ext/intl/intl_convert.c | 0 ext/intl/intl_convert.h | 0 ext/intl/intl_data.h | 0 ext/intl/intl_error.c | 0 ext/intl/intl_error.h | 0 ext/intl/locale/locale.c | 0 ext/intl/locale/locale.h | 0 ext/intl/locale/locale_class.c | 0 ext/intl/locale/locale_class.h | 0 ext/intl/locale/locale_methods.c | 0 ext/intl/locale/locale_methods.h | 0 ext/intl/msgformat/msgformat.c | 0 ext/intl/msgformat/msgformat.h | 0 ext/intl/msgformat/msgformat_attr.c | 0 ext/intl/msgformat/msgformat_attr.h | 0 ext/intl/msgformat/msgformat_class.c | 0 ext/intl/msgformat/msgformat_class.h | 0 ext/intl/msgformat/msgformat_data.c | 0 ext/intl/msgformat/msgformat_data.h | 0 ext/intl/msgformat/msgformat_format.c | 0 ext/intl/msgformat/msgformat_format.h | 0 ext/intl/msgformat/msgformat_helpers.cpp | 0 ext/intl/msgformat/msgformat_helpers.h | 0 ext/intl/msgformat/msgformat_parse.c | 0 ext/intl/msgformat/msgformat_parse.h | 0 ext/intl/normalizer/normalizer.c | 0 ext/intl/normalizer/normalizer.h | 0 ext/intl/normalizer/normalizer_class.c | 0 ext/intl/normalizer/normalizer_class.h | 0 ext/intl/normalizer/normalizer_normalize.c | 0 ext/intl/normalizer/normalizer_normalize.h | 0 ext/intl/php_intl.c | 0 ext/intl/php_intl.h | 0 ext/intl/resourcebundle/TODO | 0 ext/intl/tests/_files/es-bundle.txt | 0 ext/intl/tests/_files/res_index.txt | 0 ext/intl/tests/_files/resourcebundle.txt | 0 ext/intl/tests/_files/resourcebundle/es.res | Bin ext/intl/tests/_files/resourcebundle/res_index.res | Bin ext/intl/tests/_files/resourcebundle/root.res | Bin ext/intl/tests/badargs.phpt | 0 ext/intl/tests/bug12887.phpt | 0 ext/intl/tests/bug14562.phpt | 0 ext/intl/tests/collation_customization.phpt | 0 ext/intl/tests/collator_asort.phpt | 0 ext/intl/tests/collator_compare.phpt | 0 ext/intl/tests/collator_create.phpt | 0 ext/intl/tests/collator_get_error_code.phpt | 0 ext/intl/tests/collator_get_error_message.phpt | 0 ext/intl/tests/collator_get_locale.phpt | 0 ext/intl/tests/collator_get_set_attribute.phpt | 0 ext/intl/tests/collator_get_set_strength.phpt | 0 ext/intl/tests/collator_get_sort_key.phpt | 0 ext/intl/tests/collator_sort.phpt | 0 ext/intl/tests/collator_sort_with_sort_keys.phpt | 0 ext/intl/tests/dateformat_clone.phpt | 0 ext/intl/tests/dateformat_format.phpt | 0 ext/intl/tests/dateformat_format_parse.phpt | 0 ext/intl/tests/dateformat_get_datetype.phpt | 0 ext/intl/tests/dateformat_get_locale.phpt | 0 ext/intl/tests/dateformat_get_set_calendar.phpt | 0 ext/intl/tests/dateformat_get_set_pattern.phpt | 0 ext/intl/tests/dateformat_get_timetype.phpt | 0 ext/intl/tests/dateformat_get_timezone_id.phpt | 0 ext/intl/tests/dateformat_is_set_lenient.phpt | 0 ext/intl/tests/dateformat_localtime.phpt | 0 ext/intl/tests/dateformat_parse.phpt | 0 ext/intl/tests/dateformat_parse_localtime_parsepos.phpt | 0 ext/intl/tests/dateformat_parse_timestamp_parsepos.phpt | 0 ext/intl/tests/dateformat_set_timezone_id.phpt | 0 ext/intl/tests/formatter_clone.phpt | 0 ext/intl/tests/formatter_fail.phpt | 0 ext/intl/tests/formatter_format.phpt | 0 ext/intl/tests/formatter_format_conv.phpt | 0 ext/intl/tests/formatter_format_currency.phpt | 0 ext/intl/tests/formatter_get_error.phpt | 0 ext/intl/tests/formatter_get_locale.phpt | 0 ext/intl/tests/formatter_get_set_attribute.phpt | 0 ext/intl/tests/formatter_get_set_pattern.phpt | 0 ext/intl/tests/formatter_get_set_symbol.phpt | 0 ext/intl/tests/formatter_get_set_text_attribute.phpt | 0 ext/intl/tests/formatter_parse.phpt | 0 ext/intl/tests/formatter_parse_currency.phpt | 0 ext/intl/tests/grapheme.phpt | 0 ext/intl/tests/idn.phpt | 0 ext/intl/tests/intl_error_name.phpt | 0 ext/intl/tests/intl_get_error_code.phpt | 0 ext/intl/tests/intl_get_error_message.phpt | 0 ext/intl/tests/intl_is_failure.phpt | 0 ext/intl/tests/locale_accept.phpt | 0 ext/intl/tests/locale_compose_locale.phpt | 0 ext/intl/tests/locale_filter_matches.phpt | 0 ext/intl/tests/locale_get_all_variants.phpt | 0 ext/intl/tests/locale_get_default.phpt | 0 ext/intl/tests/locale_get_display_language.phpt | 0 ext/intl/tests/locale_get_display_name.phpt | 0 ext/intl/tests/locale_get_display_region.phpt | 0 ext/intl/tests/locale_get_display_script.phpt | 0 ext/intl/tests/locale_get_display_variant.phpt | 0 ext/intl/tests/locale_get_keywords.phpt | 0 ext/intl/tests/locale_get_primary_language.phpt | 0 ext/intl/tests/locale_get_region.phpt | 0 ext/intl/tests/locale_get_script.phpt | 0 ext/intl/tests/locale_lookup.phpt | 0 ext/intl/tests/locale_parse_locale.phpt | 0 ext/intl/tests/locale_set_default.phpt | 0 ext/intl/tests/msgfmt_clone.phpt | 0 ext/intl/tests/msgfmt_fail.phpt | 0 ext/intl/tests/msgfmt_format.phpt | 0 ext/intl/tests/msgfmt_get_error.phpt | 0 ext/intl/tests/msgfmt_get_locale.phpt | 0 ext/intl/tests/msgfmt_get_set_pattern.phpt | 0 ext/intl/tests/msgfmt_parse.phpt | 0 ext/intl/tests/normalizer_normalize.phpt | 0 ext/intl/tests/regression_sort_and_cow.phpt | 0 ext/intl/tests/regression_sort_eq.phpt | 0 ext/intl/tests/regression_sortwsk_and_cow.phpt | 0 ext/intl/tests/regression_sortwsk_eq.phpt | 0 ext/intl/tests/resourcebundle.build | 0 ext/intl/tests/resourcebundle_locales.phpt | 0 ext/intl/tests/ut_common.inc | 0 187 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 ext/intl/CREDITS mode change 100755 => 100644 ext/intl/TODO mode change 100755 => 100644 ext/intl/collator/collator.c mode change 100755 => 100644 ext/intl/collator/collator.h mode change 100755 => 100644 ext/intl/collator/collator_attr.c mode change 100755 => 100644 ext/intl/collator/collator_attr.h mode change 100755 => 100644 ext/intl/collator/collator_class.c mode change 100755 => 100644 ext/intl/collator/collator_class.h mode change 100755 => 100644 ext/intl/collator/collator_compare.c mode change 100755 => 100644 ext/intl/collator/collator_compare.h mode change 100755 => 100644 ext/intl/collator/collator_convert.c mode change 100755 => 100644 ext/intl/collator/collator_convert.h mode change 100755 => 100644 ext/intl/collator/collator_create.c mode change 100755 => 100644 ext/intl/collator/collator_create.h mode change 100755 => 100644 ext/intl/collator/collator_error.c mode change 100755 => 100644 ext/intl/collator/collator_error.h mode change 100755 => 100644 ext/intl/collator/collator_is_numeric.c mode change 100755 => 100644 ext/intl/collator/collator_is_numeric.h mode change 100755 => 100644 ext/intl/collator/collator_locale.c mode change 100755 => 100644 ext/intl/collator/collator_locale.h mode change 100755 => 100644 ext/intl/collator/collator_sort.c mode change 100755 => 100644 ext/intl/collator/collator_sort.h mode change 100755 => 100644 ext/intl/common/common_error.c mode change 100755 => 100644 ext/intl/common/common_error.h mode change 100755 => 100644 ext/intl/config.m4 mode change 100755 => 100644 ext/intl/config.w32 mode change 100755 => 100644 ext/intl/dateformat/dateformat.c mode change 100755 => 100644 ext/intl/dateformat/dateformat.h mode change 100755 => 100644 ext/intl/dateformat/dateformat_attr.c mode change 100755 => 100644 ext/intl/dateformat/dateformat_attr.h mode change 100755 => 100644 ext/intl/dateformat/dateformat_class.c mode change 100755 => 100644 ext/intl/dateformat/dateformat_class.h mode change 100755 => 100644 ext/intl/dateformat/dateformat_data.c mode change 100755 => 100644 ext/intl/dateformat/dateformat_data.h mode change 100755 => 100644 ext/intl/dateformat/dateformat_format.c mode change 100755 => 100644 ext/intl/dateformat/dateformat_format.h mode change 100755 => 100644 ext/intl/dateformat/dateformat_parse.c mode change 100755 => 100644 ext/intl/dateformat/dateformat_parse.h mode change 100755 => 100644 ext/intl/doc/Tutorial.txt mode change 100755 => 100644 ext/intl/doc/collator_api.php mode change 100755 => 100644 ext/intl/doc/common_api.php mode change 100755 => 100644 ext/intl/doc/datefmt_api.php mode change 100755 => 100644 ext/intl/doc/formatter_api.php mode change 100755 => 100644 ext/intl/doc/grapheme_api.php mode change 100755 => 100644 ext/intl/doc/locale_api.php mode change 100755 => 100644 ext/intl/doc/msgfmt_api.php mode change 100755 => 100644 ext/intl/doc/normalizer_api.php mode change 100755 => 100644 ext/intl/formatter/formatter.c mode change 100755 => 100644 ext/intl/formatter/formatter.h mode change 100755 => 100644 ext/intl/formatter/formatter_attr.c mode change 100755 => 100644 ext/intl/formatter/formatter_attr.h mode change 100755 => 100644 ext/intl/formatter/formatter_class.c mode change 100755 => 100644 ext/intl/formatter/formatter_class.h mode change 100755 => 100644 ext/intl/formatter/formatter_data.c mode change 100755 => 100644 ext/intl/formatter/formatter_data.h mode change 100755 => 100644 ext/intl/formatter/formatter_format.c mode change 100755 => 100644 ext/intl/formatter/formatter_format.h mode change 100755 => 100644 ext/intl/formatter/formatter_main.c mode change 100755 => 100644 ext/intl/formatter/formatter_main.h mode change 100755 => 100644 ext/intl/formatter/formatter_parse.c mode change 100755 => 100644 ext/intl/formatter/formatter_parse.h mode change 100755 => 100644 ext/intl/grapheme/grapheme.h mode change 100755 => 100644 ext/intl/grapheme/grapheme_string.c mode change 100755 => 100644 ext/intl/grapheme/grapheme_util.c mode change 100755 => 100644 ext/intl/grapheme/grapheme_util.h mode change 100755 => 100644 ext/intl/intl_common.h mode change 100755 => 100644 ext/intl/intl_convert.c mode change 100755 => 100644 ext/intl/intl_convert.h mode change 100755 => 100644 ext/intl/intl_data.h mode change 100755 => 100644 ext/intl/intl_error.c mode change 100755 => 100644 ext/intl/intl_error.h mode change 100755 => 100644 ext/intl/locale/locale.c mode change 100755 => 100644 ext/intl/locale/locale.h mode change 100755 => 100644 ext/intl/locale/locale_class.c mode change 100755 => 100644 ext/intl/locale/locale_class.h mode change 100755 => 100644 ext/intl/locale/locale_methods.c mode change 100755 => 100644 ext/intl/locale/locale_methods.h mode change 100755 => 100644 ext/intl/msgformat/msgformat.c mode change 100755 => 100644 ext/intl/msgformat/msgformat.h mode change 100755 => 100644 ext/intl/msgformat/msgformat_attr.c mode change 100755 => 100644 ext/intl/msgformat/msgformat_attr.h mode change 100755 => 100644 ext/intl/msgformat/msgformat_class.c mode change 100755 => 100644 ext/intl/msgformat/msgformat_class.h mode change 100755 => 100644 ext/intl/msgformat/msgformat_data.c mode change 100755 => 100644 ext/intl/msgformat/msgformat_data.h mode change 100755 => 100644 ext/intl/msgformat/msgformat_format.c mode change 100755 => 100644 ext/intl/msgformat/msgformat_format.h mode change 100755 => 100644 ext/intl/msgformat/msgformat_helpers.cpp mode change 100755 => 100644 ext/intl/msgformat/msgformat_helpers.h mode change 100755 => 100644 ext/intl/msgformat/msgformat_parse.c mode change 100755 => 100644 ext/intl/msgformat/msgformat_parse.h mode change 100755 => 100644 ext/intl/normalizer/normalizer.c mode change 100755 => 100644 ext/intl/normalizer/normalizer.h mode change 100755 => 100644 ext/intl/normalizer/normalizer_class.c mode change 100755 => 100644 ext/intl/normalizer/normalizer_class.h mode change 100755 => 100644 ext/intl/normalizer/normalizer_normalize.c mode change 100755 => 100644 ext/intl/normalizer/normalizer_normalize.h mode change 100755 => 100644 ext/intl/php_intl.c mode change 100755 => 100644 ext/intl/php_intl.h mode change 100755 => 100644 ext/intl/resourcebundle/TODO mode change 100755 => 100644 ext/intl/tests/_files/es-bundle.txt mode change 100755 => 100644 ext/intl/tests/_files/res_index.txt mode change 100755 => 100644 ext/intl/tests/_files/resourcebundle.txt mode change 100755 => 100644 ext/intl/tests/_files/resourcebundle/es.res mode change 100755 => 100644 ext/intl/tests/_files/resourcebundle/res_index.res mode change 100755 => 100644 ext/intl/tests/_files/resourcebundle/root.res mode change 100755 => 100644 ext/intl/tests/badargs.phpt mode change 100755 => 100644 ext/intl/tests/bug12887.phpt mode change 100755 => 100644 ext/intl/tests/bug14562.phpt mode change 100755 => 100644 ext/intl/tests/collation_customization.phpt mode change 100755 => 100644 ext/intl/tests/collator_asort.phpt mode change 100755 => 100644 ext/intl/tests/collator_compare.phpt mode change 100755 => 100644 ext/intl/tests/collator_create.phpt mode change 100755 => 100644 ext/intl/tests/collator_get_error_code.phpt mode change 100755 => 100644 ext/intl/tests/collator_get_error_message.phpt mode change 100755 => 100644 ext/intl/tests/collator_get_locale.phpt mode change 100755 => 100644 ext/intl/tests/collator_get_set_attribute.phpt mode change 100755 => 100644 ext/intl/tests/collator_get_set_strength.phpt mode change 100755 => 100644 ext/intl/tests/collator_get_sort_key.phpt mode change 100755 => 100644 ext/intl/tests/collator_sort.phpt mode change 100755 => 100644 ext/intl/tests/collator_sort_with_sort_keys.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_clone.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_format.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_format_parse.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_get_datetype.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_get_locale.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_get_set_calendar.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_get_set_pattern.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_get_timetype.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_get_timezone_id.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_is_set_lenient.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_localtime.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_parse.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_parse_localtime_parsepos.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_parse_timestamp_parsepos.phpt mode change 100755 => 100644 ext/intl/tests/dateformat_set_timezone_id.phpt mode change 100755 => 100644 ext/intl/tests/formatter_clone.phpt mode change 100755 => 100644 ext/intl/tests/formatter_fail.phpt mode change 100755 => 100644 ext/intl/tests/formatter_format.phpt mode change 100755 => 100644 ext/intl/tests/formatter_format_conv.phpt mode change 100755 => 100644 ext/intl/tests/formatter_format_currency.phpt mode change 100755 => 100644 ext/intl/tests/formatter_get_error.phpt mode change 100755 => 100644 ext/intl/tests/formatter_get_locale.phpt mode change 100755 => 100644 ext/intl/tests/formatter_get_set_attribute.phpt mode change 100755 => 100644 ext/intl/tests/formatter_get_set_pattern.phpt mode change 100755 => 100644 ext/intl/tests/formatter_get_set_symbol.phpt mode change 100755 => 100644 ext/intl/tests/formatter_get_set_text_attribute.phpt mode change 100755 => 100644 ext/intl/tests/formatter_parse.phpt mode change 100755 => 100644 ext/intl/tests/formatter_parse_currency.phpt mode change 100755 => 100644 ext/intl/tests/grapheme.phpt mode change 100755 => 100644 ext/intl/tests/idn.phpt mode change 100755 => 100644 ext/intl/tests/intl_error_name.phpt mode change 100755 => 100644 ext/intl/tests/intl_get_error_code.phpt mode change 100755 => 100644 ext/intl/tests/intl_get_error_message.phpt mode change 100755 => 100644 ext/intl/tests/intl_is_failure.phpt mode change 100755 => 100644 ext/intl/tests/locale_accept.phpt mode change 100755 => 100644 ext/intl/tests/locale_compose_locale.phpt mode change 100755 => 100644 ext/intl/tests/locale_filter_matches.phpt mode change 100755 => 100644 ext/intl/tests/locale_get_all_variants.phpt mode change 100755 => 100644 ext/intl/tests/locale_get_default.phpt mode change 100755 => 100644 ext/intl/tests/locale_get_display_language.phpt mode change 100755 => 100644 ext/intl/tests/locale_get_display_name.phpt mode change 100755 => 100644 ext/intl/tests/locale_get_display_region.phpt mode change 100755 => 100644 ext/intl/tests/locale_get_display_script.phpt mode change 100755 => 100644 ext/intl/tests/locale_get_display_variant.phpt mode change 100755 => 100644 ext/intl/tests/locale_get_keywords.phpt mode change 100755 => 100644 ext/intl/tests/locale_get_primary_language.phpt mode change 100755 => 100644 ext/intl/tests/locale_get_region.phpt mode change 100755 => 100644 ext/intl/tests/locale_get_script.phpt mode change 100755 => 100644 ext/intl/tests/locale_lookup.phpt mode change 100755 => 100644 ext/intl/tests/locale_parse_locale.phpt mode change 100755 => 100644 ext/intl/tests/locale_set_default.phpt mode change 100755 => 100644 ext/intl/tests/msgfmt_clone.phpt mode change 100755 => 100644 ext/intl/tests/msgfmt_fail.phpt mode change 100755 => 100644 ext/intl/tests/msgfmt_format.phpt mode change 100755 => 100644 ext/intl/tests/msgfmt_get_error.phpt mode change 100755 => 100644 ext/intl/tests/msgfmt_get_locale.phpt mode change 100755 => 100644 ext/intl/tests/msgfmt_get_set_pattern.phpt mode change 100755 => 100644 ext/intl/tests/msgfmt_parse.phpt mode change 100755 => 100644 ext/intl/tests/normalizer_normalize.phpt mode change 100755 => 100644 ext/intl/tests/regression_sort_and_cow.phpt mode change 100755 => 100644 ext/intl/tests/regression_sort_eq.phpt mode change 100755 => 100644 ext/intl/tests/regression_sortwsk_and_cow.phpt mode change 100755 => 100644 ext/intl/tests/regression_sortwsk_eq.phpt mode change 100755 => 100644 ext/intl/tests/resourcebundle.build mode change 100755 => 100644 ext/intl/tests/resourcebundle_locales.phpt mode change 100755 => 100644 ext/intl/tests/ut_common.inc diff --git a/ext/intl/CREDITS b/ext/intl/CREDITS old mode 100755 new mode 100644 diff --git a/ext/intl/TODO b/ext/intl/TODO old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator.c b/ext/intl/collator/collator.c old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator.h b/ext/intl/collator/collator.h old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_attr.c b/ext/intl/collator/collator_attr.c old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_attr.h b/ext/intl/collator/collator_attr.h old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_class.c b/ext/intl/collator/collator_class.c old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_class.h b/ext/intl/collator/collator_class.h old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_compare.c b/ext/intl/collator/collator_compare.c old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_compare.h b/ext/intl/collator/collator_compare.h old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_convert.c b/ext/intl/collator/collator_convert.c old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_convert.h b/ext/intl/collator/collator_convert.h old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_create.c b/ext/intl/collator/collator_create.c old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_create.h b/ext/intl/collator/collator_create.h old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_error.c b/ext/intl/collator/collator_error.c old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_error.h b/ext/intl/collator/collator_error.h old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_is_numeric.c b/ext/intl/collator/collator_is_numeric.c old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_is_numeric.h b/ext/intl/collator/collator_is_numeric.h old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_locale.c b/ext/intl/collator/collator_locale.c old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_locale.h b/ext/intl/collator/collator_locale.h old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_sort.c b/ext/intl/collator/collator_sort.c old mode 100755 new mode 100644 diff --git a/ext/intl/collator/collator_sort.h b/ext/intl/collator/collator_sort.h old mode 100755 new mode 100644 diff --git a/ext/intl/common/common_error.c b/ext/intl/common/common_error.c old mode 100755 new mode 100644 diff --git a/ext/intl/common/common_error.h b/ext/intl/common/common_error.h old mode 100755 new mode 100644 diff --git a/ext/intl/config.m4 b/ext/intl/config.m4 old mode 100755 new mode 100644 diff --git a/ext/intl/config.w32 b/ext/intl/config.w32 old mode 100755 new mode 100644 diff --git a/ext/intl/dateformat/dateformat.c b/ext/intl/dateformat/dateformat.c old mode 100755 new mode 100644 diff --git a/ext/intl/dateformat/dateformat.h b/ext/intl/dateformat/dateformat.h old mode 100755 new mode 100644 diff --git a/ext/intl/dateformat/dateformat_attr.c b/ext/intl/dateformat/dateformat_attr.c old mode 100755 new mode 100644 diff --git a/ext/intl/dateformat/dateformat_attr.h b/ext/intl/dateformat/dateformat_attr.h old mode 100755 new mode 100644 diff --git a/ext/intl/dateformat/dateformat_class.c b/ext/intl/dateformat/dateformat_class.c old mode 100755 new mode 100644 diff --git a/ext/intl/dateformat/dateformat_class.h b/ext/intl/dateformat/dateformat_class.h old mode 100755 new mode 100644 diff --git a/ext/intl/dateformat/dateformat_data.c b/ext/intl/dateformat/dateformat_data.c old mode 100755 new mode 100644 diff --git a/ext/intl/dateformat/dateformat_data.h b/ext/intl/dateformat/dateformat_data.h old mode 100755 new mode 100644 diff --git a/ext/intl/dateformat/dateformat_format.c b/ext/intl/dateformat/dateformat_format.c old mode 100755 new mode 100644 diff --git a/ext/intl/dateformat/dateformat_format.h b/ext/intl/dateformat/dateformat_format.h old mode 100755 new mode 100644 diff --git a/ext/intl/dateformat/dateformat_parse.c b/ext/intl/dateformat/dateformat_parse.c old mode 100755 new mode 100644 diff --git a/ext/intl/dateformat/dateformat_parse.h b/ext/intl/dateformat/dateformat_parse.h old mode 100755 new mode 100644 diff --git a/ext/intl/doc/Tutorial.txt b/ext/intl/doc/Tutorial.txt old mode 100755 new mode 100644 diff --git a/ext/intl/doc/collator_api.php b/ext/intl/doc/collator_api.php old mode 100755 new mode 100644 diff --git a/ext/intl/doc/common_api.php b/ext/intl/doc/common_api.php old mode 100755 new mode 100644 diff --git a/ext/intl/doc/datefmt_api.php b/ext/intl/doc/datefmt_api.php old mode 100755 new mode 100644 diff --git a/ext/intl/doc/formatter_api.php b/ext/intl/doc/formatter_api.php old mode 100755 new mode 100644 diff --git a/ext/intl/doc/grapheme_api.php b/ext/intl/doc/grapheme_api.php old mode 100755 new mode 100644 diff --git a/ext/intl/doc/locale_api.php b/ext/intl/doc/locale_api.php old mode 100755 new mode 100644 diff --git a/ext/intl/doc/msgfmt_api.php b/ext/intl/doc/msgfmt_api.php old mode 100755 new mode 100644 diff --git a/ext/intl/doc/normalizer_api.php b/ext/intl/doc/normalizer_api.php old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter.c b/ext/intl/formatter/formatter.c old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter.h b/ext/intl/formatter/formatter.h old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter_attr.c b/ext/intl/formatter/formatter_attr.c old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter_attr.h b/ext/intl/formatter/formatter_attr.h old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter_class.c b/ext/intl/formatter/formatter_class.c old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter_class.h b/ext/intl/formatter/formatter_class.h old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter_data.c b/ext/intl/formatter/formatter_data.c old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter_data.h b/ext/intl/formatter/formatter_data.h old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter_format.c b/ext/intl/formatter/formatter_format.c old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter_format.h b/ext/intl/formatter/formatter_format.h old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter_main.c b/ext/intl/formatter/formatter_main.c old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter_main.h b/ext/intl/formatter/formatter_main.h old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter_parse.c b/ext/intl/formatter/formatter_parse.c old mode 100755 new mode 100644 diff --git a/ext/intl/formatter/formatter_parse.h b/ext/intl/formatter/formatter_parse.h old mode 100755 new mode 100644 diff --git a/ext/intl/grapheme/grapheme.h b/ext/intl/grapheme/grapheme.h old mode 100755 new mode 100644 diff --git a/ext/intl/grapheme/grapheme_string.c b/ext/intl/grapheme/grapheme_string.c old mode 100755 new mode 100644 diff --git a/ext/intl/grapheme/grapheme_util.c b/ext/intl/grapheme/grapheme_util.c old mode 100755 new mode 100644 diff --git a/ext/intl/grapheme/grapheme_util.h b/ext/intl/grapheme/grapheme_util.h old mode 100755 new mode 100644 diff --git a/ext/intl/intl_common.h b/ext/intl/intl_common.h old mode 100755 new mode 100644 diff --git a/ext/intl/intl_convert.c b/ext/intl/intl_convert.c old mode 100755 new mode 100644 diff --git a/ext/intl/intl_convert.h b/ext/intl/intl_convert.h old mode 100755 new mode 100644 diff --git a/ext/intl/intl_data.h b/ext/intl/intl_data.h old mode 100755 new mode 100644 diff --git a/ext/intl/intl_error.c b/ext/intl/intl_error.c old mode 100755 new mode 100644 diff --git a/ext/intl/intl_error.h b/ext/intl/intl_error.h old mode 100755 new mode 100644 diff --git a/ext/intl/locale/locale.c b/ext/intl/locale/locale.c old mode 100755 new mode 100644 diff --git a/ext/intl/locale/locale.h b/ext/intl/locale/locale.h old mode 100755 new mode 100644 diff --git a/ext/intl/locale/locale_class.c b/ext/intl/locale/locale_class.c old mode 100755 new mode 100644 diff --git a/ext/intl/locale/locale_class.h b/ext/intl/locale/locale_class.h old mode 100755 new mode 100644 diff --git a/ext/intl/locale/locale_methods.c b/ext/intl/locale/locale_methods.c old mode 100755 new mode 100644 diff --git a/ext/intl/locale/locale_methods.h b/ext/intl/locale/locale_methods.h old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat.c b/ext/intl/msgformat/msgformat.c old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat.h b/ext/intl/msgformat/msgformat.h old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat_attr.c b/ext/intl/msgformat/msgformat_attr.c old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat_attr.h b/ext/intl/msgformat/msgformat_attr.h old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat_class.c b/ext/intl/msgformat/msgformat_class.c old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat_class.h b/ext/intl/msgformat/msgformat_class.h old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat_data.c b/ext/intl/msgformat/msgformat_data.c old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat_data.h b/ext/intl/msgformat/msgformat_data.h old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat_format.c b/ext/intl/msgformat/msgformat_format.c old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat_format.h b/ext/intl/msgformat/msgformat_format.h old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat_helpers.cpp b/ext/intl/msgformat/msgformat_helpers.cpp old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat_helpers.h b/ext/intl/msgformat/msgformat_helpers.h old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat_parse.c b/ext/intl/msgformat/msgformat_parse.c old mode 100755 new mode 100644 diff --git a/ext/intl/msgformat/msgformat_parse.h b/ext/intl/msgformat/msgformat_parse.h old mode 100755 new mode 100644 diff --git a/ext/intl/normalizer/normalizer.c b/ext/intl/normalizer/normalizer.c old mode 100755 new mode 100644 diff --git a/ext/intl/normalizer/normalizer.h b/ext/intl/normalizer/normalizer.h old mode 100755 new mode 100644 diff --git a/ext/intl/normalizer/normalizer_class.c b/ext/intl/normalizer/normalizer_class.c old mode 100755 new mode 100644 diff --git a/ext/intl/normalizer/normalizer_class.h b/ext/intl/normalizer/normalizer_class.h old mode 100755 new mode 100644 diff --git a/ext/intl/normalizer/normalizer_normalize.c b/ext/intl/normalizer/normalizer_normalize.c old mode 100755 new mode 100644 diff --git a/ext/intl/normalizer/normalizer_normalize.h b/ext/intl/normalizer/normalizer_normalize.h old mode 100755 new mode 100644 diff --git a/ext/intl/php_intl.c b/ext/intl/php_intl.c old mode 100755 new mode 100644 diff --git a/ext/intl/php_intl.h b/ext/intl/php_intl.h old mode 100755 new mode 100644 diff --git a/ext/intl/resourcebundle/TODO b/ext/intl/resourcebundle/TODO old mode 100755 new mode 100644 diff --git a/ext/intl/tests/_files/es-bundle.txt b/ext/intl/tests/_files/es-bundle.txt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/_files/res_index.txt b/ext/intl/tests/_files/res_index.txt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/_files/resourcebundle.txt b/ext/intl/tests/_files/resourcebundle.txt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/_files/resourcebundle/es.res b/ext/intl/tests/_files/resourcebundle/es.res old mode 100755 new mode 100644 diff --git a/ext/intl/tests/_files/resourcebundle/res_index.res b/ext/intl/tests/_files/resourcebundle/res_index.res old mode 100755 new mode 100644 diff --git a/ext/intl/tests/_files/resourcebundle/root.res b/ext/intl/tests/_files/resourcebundle/root.res old mode 100755 new mode 100644 diff --git a/ext/intl/tests/badargs.phpt b/ext/intl/tests/badargs.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/bug12887.phpt b/ext/intl/tests/bug12887.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/bug14562.phpt b/ext/intl/tests/bug14562.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/collation_customization.phpt b/ext/intl/tests/collation_customization.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/collator_asort.phpt b/ext/intl/tests/collator_asort.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/collator_compare.phpt b/ext/intl/tests/collator_compare.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/collator_create.phpt b/ext/intl/tests/collator_create.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/collator_get_error_code.phpt b/ext/intl/tests/collator_get_error_code.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/collator_get_error_message.phpt b/ext/intl/tests/collator_get_error_message.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/collator_get_locale.phpt b/ext/intl/tests/collator_get_locale.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/collator_get_set_attribute.phpt b/ext/intl/tests/collator_get_set_attribute.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/collator_get_set_strength.phpt b/ext/intl/tests/collator_get_set_strength.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/collator_get_sort_key.phpt b/ext/intl/tests/collator_get_sort_key.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/collator_sort.phpt b/ext/intl/tests/collator_sort.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/collator_sort_with_sort_keys.phpt b/ext/intl/tests/collator_sort_with_sort_keys.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_clone.phpt b/ext/intl/tests/dateformat_clone.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_format.phpt b/ext/intl/tests/dateformat_format.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_format_parse.phpt b/ext/intl/tests/dateformat_format_parse.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_get_datetype.phpt b/ext/intl/tests/dateformat_get_datetype.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_get_locale.phpt b/ext/intl/tests/dateformat_get_locale.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_get_set_calendar.phpt b/ext/intl/tests/dateformat_get_set_calendar.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_get_set_pattern.phpt b/ext/intl/tests/dateformat_get_set_pattern.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_get_timetype.phpt b/ext/intl/tests/dateformat_get_timetype.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_get_timezone_id.phpt b/ext/intl/tests/dateformat_get_timezone_id.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_is_set_lenient.phpt b/ext/intl/tests/dateformat_is_set_lenient.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_localtime.phpt b/ext/intl/tests/dateformat_localtime.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_parse.phpt b/ext/intl/tests/dateformat_parse.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_parse_localtime_parsepos.phpt b/ext/intl/tests/dateformat_parse_localtime_parsepos.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_parse_timestamp_parsepos.phpt b/ext/intl/tests/dateformat_parse_timestamp_parsepos.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/dateformat_set_timezone_id.phpt b/ext/intl/tests/dateformat_set_timezone_id.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/formatter_clone.phpt b/ext/intl/tests/formatter_clone.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/formatter_fail.phpt b/ext/intl/tests/formatter_fail.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/formatter_format.phpt b/ext/intl/tests/formatter_format.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/formatter_format_conv.phpt b/ext/intl/tests/formatter_format_conv.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/formatter_format_currency.phpt b/ext/intl/tests/formatter_format_currency.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/formatter_get_error.phpt b/ext/intl/tests/formatter_get_error.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/formatter_get_locale.phpt b/ext/intl/tests/formatter_get_locale.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/formatter_get_set_attribute.phpt b/ext/intl/tests/formatter_get_set_attribute.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/formatter_get_set_pattern.phpt b/ext/intl/tests/formatter_get_set_pattern.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/formatter_get_set_symbol.phpt b/ext/intl/tests/formatter_get_set_symbol.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/formatter_get_set_text_attribute.phpt b/ext/intl/tests/formatter_get_set_text_attribute.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/formatter_parse.phpt b/ext/intl/tests/formatter_parse.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/formatter_parse_currency.phpt b/ext/intl/tests/formatter_parse_currency.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/grapheme.phpt b/ext/intl/tests/grapheme.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/idn.phpt b/ext/intl/tests/idn.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/intl_error_name.phpt b/ext/intl/tests/intl_error_name.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/intl_get_error_code.phpt b/ext/intl/tests/intl_get_error_code.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/intl_get_error_message.phpt b/ext/intl/tests/intl_get_error_message.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/intl_is_failure.phpt b/ext/intl/tests/intl_is_failure.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_accept.phpt b/ext/intl/tests/locale_accept.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_compose_locale.phpt b/ext/intl/tests/locale_compose_locale.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_filter_matches.phpt b/ext/intl/tests/locale_filter_matches.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_get_all_variants.phpt b/ext/intl/tests/locale_get_all_variants.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_get_default.phpt b/ext/intl/tests/locale_get_default.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_get_display_language.phpt b/ext/intl/tests/locale_get_display_language.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_get_display_name.phpt b/ext/intl/tests/locale_get_display_name.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_get_display_region.phpt b/ext/intl/tests/locale_get_display_region.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_get_display_script.phpt b/ext/intl/tests/locale_get_display_script.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_get_display_variant.phpt b/ext/intl/tests/locale_get_display_variant.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_get_keywords.phpt b/ext/intl/tests/locale_get_keywords.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_get_primary_language.phpt b/ext/intl/tests/locale_get_primary_language.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_get_region.phpt b/ext/intl/tests/locale_get_region.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_get_script.phpt b/ext/intl/tests/locale_get_script.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_lookup.phpt b/ext/intl/tests/locale_lookup.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_parse_locale.phpt b/ext/intl/tests/locale_parse_locale.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/locale_set_default.phpt b/ext/intl/tests/locale_set_default.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/msgfmt_clone.phpt b/ext/intl/tests/msgfmt_clone.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/msgfmt_fail.phpt b/ext/intl/tests/msgfmt_fail.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/msgfmt_format.phpt b/ext/intl/tests/msgfmt_format.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/msgfmt_get_error.phpt b/ext/intl/tests/msgfmt_get_error.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/msgfmt_get_locale.phpt b/ext/intl/tests/msgfmt_get_locale.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/msgfmt_get_set_pattern.phpt b/ext/intl/tests/msgfmt_get_set_pattern.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/msgfmt_parse.phpt b/ext/intl/tests/msgfmt_parse.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/normalizer_normalize.phpt b/ext/intl/tests/normalizer_normalize.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/regression_sort_and_cow.phpt b/ext/intl/tests/regression_sort_and_cow.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/regression_sort_eq.phpt b/ext/intl/tests/regression_sort_eq.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/regression_sortwsk_and_cow.phpt b/ext/intl/tests/regression_sortwsk_and_cow.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/regression_sortwsk_eq.phpt b/ext/intl/tests/regression_sortwsk_eq.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/resourcebundle.build b/ext/intl/tests/resourcebundle.build old mode 100755 new mode 100644 diff --git a/ext/intl/tests/resourcebundle_locales.phpt b/ext/intl/tests/resourcebundle_locales.phpt old mode 100755 new mode 100644 diff --git a/ext/intl/tests/ut_common.inc b/ext/intl/tests/ut_common.inc old mode 100755 new mode 100644 -- cgit v1.2.1 From 7e3e1837c8e60ad87e9b7aee6cb306a843f5c784 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustavo=20Andr=C3=A9=20dos=20Santos=20Lopes?= Date: Mon, 30 Jul 2012 10:27:41 +0200 Subject: Limit test to ICU 49 --- ext/intl/tests/bug62070.phpt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ext/intl/tests/bug62070.phpt b/ext/intl/tests/bug62070.phpt index a466b05c24..3ab0078d70 100644 --- a/ext/intl/tests/bug62070.phpt +++ b/ext/intl/tests/bug62070.phpt @@ -4,6 +4,8 @@ Bug #62070: Collator::getSortKey() returns garbage = 49 only'); --FILE-- Date: Tue, 31 Jul 2012 10:49:13 +0800 Subject: Test for bug #62680 --- Zend/tests/bug62680.phpt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 Zend/tests/bug62680.phpt diff --git a/Zend/tests/bug62680.phpt b/Zend/tests/bug62680.phpt new file mode 100644 index 0000000000..804dece415 --- /dev/null +++ b/Zend/tests/bug62680.phpt @@ -0,0 +1,13 @@ +--TEST-- +Bug #62680 (Function isset() throws fatal error on set array if non-existent key depth >= 3) +--XFAIL-- +see https://bugs.php.net/62680 +--FILE-- + +--EXPECT-- +bool(false) +bool(false) -- cgit v1.2.1 From 10642aa9e4f1eb694a8f7b514cc234cb24545744 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Wed, 1 Aug 2012 20:23:30 +0800 Subject: Fixed bug #62715 (ReflectionParameter::isDefaultValueAvailable() wrong result) --- NEWS | 4 ++++ ext/reflection/php_reflection.c | 4 +--- ext/reflection/tests/bug62715.phpt | 17 +++++++++++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 ext/reflection/tests/bug62715.phpt diff --git a/NEWS b/NEWS index 5aa35d7e20..b836d4f680 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,10 @@ PHP NEWS - DateTime: . Fixed Bug #62500 (Segfault in DateInterval class when extended). (Laruence) +- Reflection: + . Fixed bug #62715 (ReflectionParameter::isDefaultValueAvailable() wrong + result). (Laruence) + - SPL: . Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault). (Laruence, Gustavo) diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index e98652ba23..23c9044981 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -2379,9 +2379,7 @@ ZEND_METHOD(reflection_parameter, isDefaultValueAvailable) { RETURN_FALSE; } - if (param->offset < param->required) { - RETURN_FALSE; - } + precv = _get_recv_op((zend_op_array*)param->fptr, param->offset); if (!precv || precv->opcode != ZEND_RECV_INIT || precv->op2.op_type == IS_UNUSED) { RETURN_FALSE; diff --git a/ext/reflection/tests/bug62715.phpt b/ext/reflection/tests/bug62715.phpt new file mode 100644 index 0000000000..721d484c71 --- /dev/null +++ b/ext/reflection/tests/bug62715.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #62715 (ReflectionParameter::isDefaultValueAvailable() wrong result) +--FILE-- +getParameters() as $p) { + var_dump($p->isDefaultValueAvailable()); +} + +?> +--EXPECT-- +bool(true) +bool(true) +bool(false) -- cgit v1.2.1 From 433089ccb4d4747a01d522e8678664ff17584615 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 2 Aug 2012 12:30:07 +0800 Subject: Fixed bug #62716 (munmap() is called with the incorrect length) --- NEWS | 2 ++ Zend/zend_stream.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index b836d4f680..97fc6d626d 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,8 @@ PHP NEWS ?? ??? 2012, PHP 5.3.16 - Core: + . Fixed bug #62716 (munmap() is called with the incorrect length). + (slangley@google.com) . Fixed bug #60194 (--with-zend-multibyte and --enable-debug reports LEAK with run-test.php). (Laruence) diff --git a/Zend/zend_stream.c b/Zend/zend_stream.c index 5a02ecdfae..bc5206c12c 100644 --- a/Zend/zend_stream.c +++ b/Zend/zend_stream.c @@ -79,7 +79,7 @@ static size_t zend_stream_stdio_fsizer(void *handle TSRMLS_DC) /* {{{ */ static void zend_stream_unmap(zend_stream *stream TSRMLS_DC) { /* {{{ */ #if HAVE_MMAP if (stream->mmap.map) { - munmap(stream->mmap.map, stream->mmap.len); + munmap(stream->mmap.map, stream->mmap.len + ZEND_MMAP_AHEAD); } else #endif if (stream->mmap.buf) { -- cgit v1.2.1 From cd896d69d90c70fd13efec315fd8b1f6647497b9 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 2 Aug 2012 12:52:11 +0800 Subject: Fixed bug #62685 (Wrong return datatype in PDO::inTransaction()) --- NEWS | 5 ++++- ext/pdo/pdo_dbh.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 97fc6d626d..05a80eb6e7 100644 --- a/NEWS +++ b/NEWS @@ -13,7 +13,10 @@ PHP NEWS (r.hampartsumyan@gmail.com, Laruence) - DateTime: - . Fixed Bug #62500 (Segfault in DateInterval class when extended). (Laruence) + . Fixed bug #62500 (Segfault in DateInterval class when extended). (Laruence) + +- PDO: + . Fixed bug #62685 (Wrong return datatype in PDO::inTransaction()). (Laruence) - Reflection: . Fixed bug #62715 (ReflectionParameter::isDefaultValueAvailable() wrong diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index 6b3ba3bb1b..4035b2b910 100755 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -694,7 +694,7 @@ static PHP_METHOD(PDO, inTransaction) } PDO_CONSTRUCT_CHECK; - RETURN_LONG(dbh->in_txn); + RETURN_BOOL(dbh->in_txn); } /* }}} */ -- cgit v1.2.1 From 9a690859f6491dd5c14dfd6c907a5563c8aedd17 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 2 Aug 2012 19:14:06 +0800 Subject: fix test due to float value --- ext/standard/tests/file/realpath_cache.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/standard/tests/file/realpath_cache.phpt b/ext/standard/tests/file/realpath_cache.phpt index 92d6fc5b2a..0eb9dc519a 100644 --- a/ext/standard/tests/file/realpath_cache.phpt +++ b/ext/standard/tests/file/realpath_cache.phpt @@ -19,7 +19,7 @@ echo "Done\n"; int(%d) array(4) { ["key"]=> - %s(%d) + %s(%f) ["is_dir"]=> bool(true) ["realpath"]=> -- cgit v1.2.1 From 2b6ac9e1a0ce6efddba9d513b99a67f8e5d43764 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 2 Aug 2012 19:31:34 +0800 Subject: Fix test, wrong exepct rule used --- ext/intl/tests/bug59597_64.phpt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ext/intl/tests/bug59597_64.phpt b/ext/intl/tests/bug59597_64.phpt index 4b96bf72e9..eb70995a25 100644 --- a/ext/intl/tests/bug59597_64.phpt +++ b/ext/intl/tests/bug59597_64.phpt @@ -15,7 +15,6 @@ $value = $formatter->parse('2147483650', \NumberFormatter::TYPE_INT64); var_dump($value); ?> ---EXPECTREGEX-- +--EXPECT-- int(2147483647) int(2147483650) - -- cgit v1.2.1 From 49b202f2cfe04d577671b685b7c0d3a096a433c7 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 2 Aug 2012 22:16:46 +0800 Subject: Fixed bug that can not get default value of parameter if it's not `optional` --- ext/reflection/php_reflection.c | 4 ---- ext/reflection/tests/bug62715.phpt | 7 +++++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 23c9044981..593a0506b0 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -2406,10 +2406,6 @@ ZEND_METHOD(reflection_parameter, getDefaultValue) zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC, "Cannot determine default value for internal functions"); return; } - if (param->offset < param->required) { - zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC, "Parameter is not optional"); - return; - } precv = _get_recv_op((zend_op_array*)param->fptr, param->offset); if (!precv || precv->opcode != ZEND_RECV_INIT || precv->op2.op_type == IS_UNUSED) { zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC, "Internal error"); diff --git a/ext/reflection/tests/bug62715.phpt b/ext/reflection/tests/bug62715.phpt index 721d484c71..feb67f614b 100644 --- a/ext/reflection/tests/bug62715.phpt +++ b/ext/reflection/tests/bug62715.phpt @@ -10,8 +10,15 @@ foreach ($r->getParameters() as $p) { var_dump($p->isDefaultValueAvailable()); } +foreach ($r->getParameters() as $p) { + if ($p->isDefaultValueAvailable()) { + var_dump($p->getDefaultValue()); + } +} ?> --EXPECT-- bool(true) bool(true) bool(false) +NULL +int(0) -- cgit v1.2.1 From 03a1fcabf31210d3f304bfacf5096ce43c2b8f93 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 4 Aug 2012 10:41:26 +0800 Subject: Fixed bug #62744 (dangling pointers made by zend_disable_class) the test will be added while commit the fix for #62737 --- NEWS | 1 + Zend/zend_API.c | 13 ++++++------- Zend/zend_API.h | 5 +++++ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/NEWS b/NEWS index 05a80eb6e7..c22d7c2fd4 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,7 @@ PHP NEWS ?? ??? 2012, PHP 5.3.16 - Core: + . Fixed bug #62744 (dangling pointers made by zend_disable_class). (Laruence) . Fixed bug #62716 (munmap() is called with the incorrect length). (slangley@google.com) . Fixed bug #60194 (--with-zend-multibyte and --enable-debug reports LEAK diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 6d2ccd2c69..16a940dcac 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2342,16 +2342,16 @@ static const zend_function_entry disabled_class_new[] = { ZEND_API int zend_disable_class(char *class_name, uint class_name_length TSRMLS_DC) /* {{{ */ { - zend_class_entry disabled_class; + zend_class_entry **disabled_class; zend_str_tolower(class_name, class_name_length); - if (zend_hash_del(CG(class_table), class_name, class_name_length+1)==FAILURE) { + if (zend_hash_find(CG(class_table), class_name, class_name_length+1, (void **)&disabled_class)==FAILURE) { return FAILURE; } - INIT_OVERLOADED_CLASS_ENTRY_EX(disabled_class, class_name, class_name_length, disabled_class_new, NULL, NULL, NULL, NULL, NULL); - disabled_class.create_object = display_disabled_class; - disabled_class.name_length = class_name_length; - zend_register_internal_class(&disabled_class TSRMLS_CC); + INIT_CLASS_ENTRY_INIT_METHODS((**disabled_class), disabled_class_new, NULL, NULL, NULL, NULL, NULL); + (*disabled_class)->create_object = display_disabled_class; + (*disabled_class)->builtin_functions = disabled_class_new; + zend_hash_clean(&((*disabled_class)->function_table)); return SUCCESS; } /* }}} */ @@ -2425,7 +2425,6 @@ static int zend_is_callable_check_class(const char *name, int name_len, zend_fca } /* }}} */ - static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fcall_info_cache *fcc, int strict_class, char **error TSRMLS_DC) /* {{{ */ { zend_class_entry *ce_org = fcc->calling_scope; diff --git a/Zend/zend_API.h b/Zend/zend_API.h index 0a2a595557..ddd84fa584 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -170,6 +170,11 @@ typedef struct _zend_fcall_info_cache { int _len = class_name_len; \ class_container.name = zend_strndup(class_name, _len); \ class_container.name_length = _len; \ + INIT_CLASS_ENTRY_INIT_METHODS(class_container, functions, handle_fcall, handle_propget, handle_propset, handle_propunset, handle_propisset) \ + } + +#define INIT_CLASS_ENTRY_INIT_METHODS(class_container, functions, handle_fcall, handle_propget, handle_propset, handle_propunset, handle_propisset) \ + { \ class_container.builtin_functions = functions; \ class_container.constructor = NULL; \ class_container.destructor = NULL; \ -- cgit v1.2.1 From f4a315fce2658a5338486e17ee11d77bd3dcb14b Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 4 Aug 2012 11:03:21 +0800 Subject: This becomes useless, since we have set that in the INIT macro --- Zend/zend_API.c | 1 - 1 file changed, 1 deletion(-) diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 16a940dcac..56182138a8 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2350,7 +2350,6 @@ ZEND_API int zend_disable_class(char *class_name, uint class_name_length TSRMLS_ } INIT_CLASS_ENTRY_INIT_METHODS((**disabled_class), disabled_class_new, NULL, NULL, NULL, NULL, NULL); (*disabled_class)->create_object = display_disabled_class; - (*disabled_class)->builtin_functions = disabled_class_new; zend_hash_clean(&((*disabled_class)->function_table)); return SUCCESS; } -- cgit v1.2.1 From 228c2886869e7f50a272f163cb3b765a65fd40eb Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sun, 5 Aug 2012 12:40:59 +0800 Subject: Fix 126 tests failed of phar when --enable-zend-multibyte --- ext/phar/tests/008.phpt | 2 ++ ext/phar/tests/009.phpt | 1 + ext/phar/tests/010.phpt | 1 + ext/phar/tests/011.phpt | 1 + ext/phar/tests/012.phpt | 1 + ext/phar/tests/018.phpt | 3 ++- ext/phar/tests/019b.phpt | 1 + ext/phar/tests/019c.phpt | 1 + ext/phar/tests/020.phpt | 3 ++- ext/phar/tests/021.phpt | 3 ++- ext/phar/tests/022.phpt | 1 + ext/phar/tests/028.phpt | 1 + ext/phar/tests/cache_list/copyonwrite1.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite10.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite11.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite12.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite13.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite14.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite15.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite16.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite17.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite18.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite19.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite2.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite20.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite21.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite22.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite23.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite24.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite25.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite3.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite4.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite4a.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite5.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite6.phar.phpt | 1 + ext/phar/tests/cache_list/copyonwrite7.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite8.phar.phpt | 3 ++- ext/phar/tests/cache_list/copyonwrite9.phar.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller1.phpt | 1 + ext/phar/tests/cache_list/frontcontroller10.phpt | 1 + ext/phar/tests/cache_list/frontcontroller11.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller12.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller13.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller14.phpt | 1 + ext/phar/tests/cache_list/frontcontroller15.phpt | 1 + ext/phar/tests/cache_list/frontcontroller16.phpt | 1 + ext/phar/tests/cache_list/frontcontroller17.phpt | 1 + ext/phar/tests/cache_list/frontcontroller18.phpt | 1 + ext/phar/tests/cache_list/frontcontroller19.phpt | 1 + ext/phar/tests/cache_list/frontcontroller2.phpt | 1 + ext/phar/tests/cache_list/frontcontroller20.phpt | 1 + ext/phar/tests/cache_list/frontcontroller21.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller22.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller23.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller24.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller25.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller26.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller27.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller28.phpt | 1 + ext/phar/tests/cache_list/frontcontroller29.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller3.phpt | 1 + ext/phar/tests/cache_list/frontcontroller30.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller31.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller32.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller33.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller34.phpt | 1 + ext/phar/tests/cache_list/frontcontroller4.phpt | 1 + ext/phar/tests/cache_list/frontcontroller5.phpt | 1 + ext/phar/tests/cache_list/frontcontroller6.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller7.phpt | 1 + ext/phar/tests/cache_list/frontcontroller8.phpt | 3 ++- ext/phar/tests/cache_list/frontcontroller9.phpt | 3 ++- ext/phar/tests/delete.phpt | 3 ++- ext/phar/tests/fatal_error_webphar.phpt | 3 ++- ext/phar/tests/file_get_contents.phpt | 3 ++- ext/phar/tests/fopen.phpt | 3 ++- ext/phar/tests/front.phar.phpt | 1 + ext/phar/tests/frontcontroller1.phpt | 2 ++ ext/phar/tests/frontcontroller10.phpt | 1 + ext/phar/tests/frontcontroller12.phpt | 3 ++- ext/phar/tests/frontcontroller13.phpt | 3 ++- ext/phar/tests/frontcontroller14.phpt | 2 ++ ext/phar/tests/frontcontroller15.phpt | 1 + ext/phar/tests/frontcontroller16.phpt | 1 + ext/phar/tests/frontcontroller17.phpt | 2 ++ ext/phar/tests/frontcontroller18.phpt | 2 ++ ext/phar/tests/frontcontroller19.phpt | 2 ++ ext/phar/tests/frontcontroller2.phpt | 1 + ext/phar/tests/frontcontroller20.phpt | 2 ++ ext/phar/tests/frontcontroller21.phpt | 3 ++- ext/phar/tests/frontcontroller22.phpt | 3 ++- ext/phar/tests/frontcontroller23.phpt | 3 ++- ext/phar/tests/frontcontroller24.phpt | 3 ++- ext/phar/tests/frontcontroller25.phpt | 3 ++- ext/phar/tests/frontcontroller26.phpt | 4 +++- ext/phar/tests/frontcontroller27.phpt | 3 ++- ext/phar/tests/frontcontroller28.phpt | 1 + ext/phar/tests/frontcontroller29.phpt | 3 ++- ext/phar/tests/frontcontroller3.phpt | 1 + ext/phar/tests/frontcontroller30.phpt | 4 +++- ext/phar/tests/frontcontroller31.phpt | 3 ++- ext/phar/tests/frontcontroller32.phpt | 3 ++- ext/phar/tests/frontcontroller33.phpt | 3 ++- ext/phar/tests/frontcontroller34.phpt | 1 + ext/phar/tests/frontcontroller4.phpt | 2 ++ ext/phar/tests/frontcontroller5.phpt | 2 ++ ext/phar/tests/frontcontroller6.phpt | 4 +++- ext/phar/tests/frontcontroller7.phpt | 2 ++ ext/phar/tests/frontcontroller8.phpt | 4 +++- ext/phar/tests/frontcontroller9.phpt | 3 ++- ext/phar/tests/include_path_advanced.phpt | 3 ++- ext/phar/tests/mounteddir.phpt | 1 + ext/phar/tests/opendir.phpt | 3 ++- ext/phar/tests/phar_gzip.phpt | 3 ++- ext/phar/tests/phar_magic.phpt | 1 + ext/phar/tests/phar_mount.phpt | 3 ++- ext/phar/tests/readfile.phpt | 3 ++- ext/phar/tests/rename.phpt | 3 ++- ext/phar/tests/rename_dir.phpt | 1 + ext/phar/tests/rename_dir_and_mount.phpt | 1 + ext/phar/tests/rmdir.phpt | 1 + ext/phar/tests/security.phpt | 3 ++- ext/phar/tests/stat.phpt | 3 ++- ext/phar/tests/withphar.phpt | 2 ++ ext/phar/tests/withphar_web.phpt | 2 ++ ext/phar/tests/zip/notphar.phpt | 1 + 126 files changed, 217 insertions(+), 75 deletions(-) diff --git a/ext/phar/tests/008.phpt b/ext/phar/tests/008.phpt index 664ffea5cb..bede8ba1c1 100644 --- a/ext/phar/tests/008.phpt +++ b/ext/phar/tests/008.phpt @@ -2,6 +2,8 @@ Phar::mapPhar truncated manifest (not enough for manifest length) --SKIPIF-- +--INI-- +detect_unicode=0 --FILE-- --INI-- phar.require_hash=0 +detect_unicode=0 --FILE-- --INI-- phar.require_hash=0 +detect_unicode=0 --FILE-- --INI-- phar.require_hash=0 +detect_unicode=0 --FILE-- --INI-- phar.require_hash=0 +detect_unicode=0 --FILE-- ")) die("skip pre-unicode version of P ?> --INI-- phar.require_hash=0 +detect_unicode=0 --FILE-- ")) die("skip pre-unicode version of P ?> --INI-- phar.require_hash=0 +detect_unicode=0 --FILE-- ")) die("skip pre-unicode version of P ?> --INI-- phar.require_hash=0 +detect_unicode=0 --FILE-- --INI-- phar.require_hash=0 +detect_unicode=0 --FILE-- int(-1) -} \ No newline at end of file +} diff --git a/ext/phar/tests/021.phpt b/ext/phar/tests/021.phpt index bfd6576952..af062dbcf1 100644 --- a/ext/phar/tests/021.phpt +++ b/ext/phar/tests/021.phpt @@ -4,6 +4,7 @@ Phar: stream stat --INI-- phar.require_hash=0 +detect_unicode=0 --FILE-- int(-1) -} \ No newline at end of file +} diff --git a/ext/phar/tests/022.phpt b/ext/phar/tests/022.phpt index 20c24a0214..934add4721 100644 --- a/ext/phar/tests/022.phpt +++ b/ext/phar/tests/022.phpt @@ -4,6 +4,7 @@ Phar: stream stat --INI-- phar.require_hash=0 +detect_unicode=0 --FILE-- --INI-- phar.require_hash=0 +detect_unicode=0 --FILE-- --FILE_EXTERNAL-- @@ -11,4 +12,4 @@ files/write.phar --EXPECT-- hi changed -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite10.phar.phpt b/ext/phar/tests/cache_list/copyonwrite10.phar.phpt index 3d5b7fe784..959c6e0a94 100644 --- a/ext/phar/tests/cache_list/copyonwrite10.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite10.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 10 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite10.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -21,4 +22,4 @@ __HALT_COMPILER(); ?> " -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite11.phar.phpt b/ext/phar/tests/cache_list/copyonwrite11.phar.phpt index 65388163dc..f48df3776d 100644 --- a/ext/phar/tests/cache_list/copyonwrite11.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite11.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 11 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite11.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -19,4 +20,4 @@ echo "ok\n"; __HALT_COMPILER(); ?> " 6685 -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite12.phar.phpt b/ext/phar/tests/cache_list/copyonwrite12.phar.phpt index 40b544191d..ef5d02ccc8 100644 --- a/ext/phar/tests/cache_list/copyonwrite12.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite12.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 12 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite12.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -21,4 +22,4 @@ array(2) { ["hash_type"]=> string(3) "MD5" } -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite13.phar.phpt b/ext/phar/tests/cache_list/copyonwrite13.phar.phpt index fc47174d2b..bd49565c83 100644 --- a/ext/phar/tests/cache_list/copyonwrite13.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite13.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 13 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite13.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- @@ -12,4 +13,4 @@ files/write13.phar --EXPECTF-- bool(false) bool(true) -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite14.phar.phpt b/ext/phar/tests/cache_list/copyonwrite14.phar.phpt index 11201ac989..9b4a65c54c 100644 --- a/ext/phar/tests/cache_list/copyonwrite14.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite14.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 14 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite14.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- @@ -12,4 +13,4 @@ files/write14.phar --EXPECTF-- bool(true) bool(false) -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite15.phar.phpt b/ext/phar/tests/cache_list/copyonwrite15.phar.phpt index 6e46289227..545201e389 100644 --- a/ext/phar/tests/cache_list/copyonwrite15.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite15.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 15 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite15.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -11,4 +12,4 @@ files/write15.phar --EXPECTF-- bool(false) bool(true) -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite16.phar.phpt b/ext/phar/tests/cache_list/copyonwrite16.phar.phpt index f17784c355..5cc9cb415a 100644 --- a/ext/phar/tests/cache_list/copyonwrite16.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite16.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 16 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite16.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -11,4 +12,4 @@ files/write16.phar --EXPECTF-- bool(true) bool(false) -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite17.phar.phpt b/ext/phar/tests/cache_list/copyonwrite17.phar.phpt index 158c049b14..74dc6619c1 100644 --- a/ext/phar/tests/cache_list/copyonwrite17.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite17.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 17 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite17.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -11,4 +12,4 @@ files/write17.phar --EXPECTF-- NULL %string|unicode%(2) "hi" -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite18.phar.phpt b/ext/phar/tests/cache_list/copyonwrite18.phar.phpt index 3e65f5a124..03112c18be 100644 --- a/ext/phar/tests/cache_list/copyonwrite18.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite18.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 18 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite18.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -11,4 +12,4 @@ files/write18.phar --EXPECTF-- 100666 100444 -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite19.phar.phpt b/ext/phar/tests/cache_list/copyonwrite19.phar.phpt index 6e03554d96..23fe5879a9 100644 --- a/ext/phar/tests/cache_list/copyonwrite19.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite19.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 19 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite19.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -11,4 +12,4 @@ files/write19.phar --EXPECTF-- string(2) "hi" %string|unicode%(3) "hi2" -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite2.phar.phpt b/ext/phar/tests/cache_list/copyonwrite2.phar.phpt index 8d21c813a4..9246a630c6 100644 --- a/ext/phar/tests/cache_list/copyonwrite2.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite2.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 2 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite2.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -14,4 +15,4 @@ bool(true) string(2) "hi" bool(true) bool(true) -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite20.phar.phpt b/ext/phar/tests/cache_list/copyonwrite20.phar.phpt index acce57415c..10c56342e9 100644 --- a/ext/phar/tests/cache_list/copyonwrite20.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite20.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 20 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite20.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -11,4 +12,4 @@ files/write20.phar --EXPECTF-- string(2) "hi" NULL -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite21.phar.phpt b/ext/phar/tests/cache_list/copyonwrite21.phar.phpt index 8960ea7171..409273db6c 100644 --- a/ext/phar/tests/cache_list/copyonwrite21.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite21.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 21 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite21.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- @@ -12,4 +13,4 @@ files/write21.phar --EXPECTF-- bool(false) bool(true) -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite22.phar.phpt b/ext/phar/tests/cache_list/copyonwrite22.phar.phpt index 7cba216395..9e7ad6c741 100644 --- a/ext/phar/tests/cache_list/copyonwrite22.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite22.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 22 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite22.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- @@ -12,4 +13,4 @@ files/write22.phar --EXPECTF-- bool(true) bool(false) -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite23.phar.phpt b/ext/phar/tests/cache_list/copyonwrite23.phar.phpt index 292e5af668..28412928b6 100644 --- a/ext/phar/tests/cache_list/copyonwrite23.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite23.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 23 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite23.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- @@ -14,4 +15,4 @@ bool(true) bool(false) bool(false) bool(true) -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite24.phar.phpt b/ext/phar/tests/cache_list/copyonwrite24.phar.phpt index 69197f2b4b..3aaba359f5 100644 --- a/ext/phar/tests/cache_list/copyonwrite24.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite24.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 24 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite24.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- @@ -12,4 +13,4 @@ files/write24.phar --EXPECTF-- bool(false) bool(true) -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite25.phar.phpt b/ext/phar/tests/cache_list/copyonwrite25.phar.phpt index b661cb61c1..73a1d7648a 100644 --- a/ext/phar/tests/cache_list/copyonwrite25.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite25.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 25 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite25.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- @@ -13,4 +14,4 @@ files/write25.phar bool(false) bool(true) --FILE_EXTERNAL-- @@ -13,4 +14,4 @@ bool(true) bool(true) bool(false) bool(false) -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite4.phar.phpt b/ext/phar/tests/cache_list/copyonwrite4.phar.phpt index 20ff78e282..f29a8d6247 100644 --- a/ext/phar/tests/cache_list/copyonwrite4.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite4.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 4 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite4.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -12,4 +13,4 @@ files/write4.phar bool(false) bool(true) string(2) "hi" -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite4a.phpt b/ext/phar/tests/cache_list/copyonwrite4a.phpt index 1945e31f16..1b50c4204a 100644 --- a/ext/phar/tests/cache_list/copyonwrite4a.phpt +++ b/ext/phar/tests/cache_list/copyonwrite4a.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 4a [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite4.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE-- @@ -17,4 +18,4 @@ var_dump(file_exists('phar://' . dirname(__FILE__) . '/files/write4.phar/testit. bool(false) bool(true) string(2) "hi" -===DONE=== \ No newline at end of file +===DONE=== diff --git a/ext/phar/tests/cache_list/copyonwrite5.phar.phpt b/ext/phar/tests/cache_list/copyonwrite5.phar.phpt index 89990a7af1..6f48dfa63d 100644 --- a/ext/phar/tests/cache_list/copyonwrite5.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite5.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 5 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite5.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -24,4 +25,4 @@ array(2) { phar://%scopyonwrite5.phar.php%cfile1 file1 phar://%scopyonwrite5.phar.php%cfile2 file2 phar://%scopyonwrite5.phar.php%chi hi -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite6.phar.phpt b/ext/phar/tests/cache_list/copyonwrite6.phar.phpt index 661fef42c1..ceea8508bd 100644 --- a/ext/phar/tests/cache_list/copyonwrite6.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite6.phar.phpt @@ -5,6 +5,7 @@ default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite6.phar.php phar.readonly=0 open_basedir= +detect_unicode=0 --SKIPIF-- diff --git a/ext/phar/tests/cache_list/copyonwrite7.phar.phpt b/ext/phar/tests/cache_list/copyonwrite7.phar.phpt index d6faded9cc..57658dddd9 100644 --- a/ext/phar/tests/cache_list/copyonwrite7.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite7.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 7 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite7.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -11,4 +12,4 @@ files/write7.phar --EXPECT-- bool(true) bool(false) -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite8.phar.phpt b/ext/phar/tests/cache_list/copyonwrite8.phar.phpt index 7217d336e2..71aa0b01be 100644 --- a/ext/phar/tests/cache_list/copyonwrite8.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite8.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 8 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite8.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -11,4 +12,4 @@ files/write8.phar --EXPECTF-- string(%s) "%scopyonwrite8.phar.php" hi -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/copyonwrite9.phar.phpt b/ext/phar/tests/cache_list/copyonwrite9.phar.phpt index ffda9565bd..b2437776a1 100644 --- a/ext/phar/tests/cache_list/copyonwrite9.phar.phpt +++ b/ext/phar/tests/cache_list/copyonwrite9.phar.phpt @@ -4,6 +4,7 @@ Phar: copy-on-write test 9 [cache_list] default_charset=UTF-8 phar.cache_list={PWD}/copyonwrite9.phar.php phar.readonly=0 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -20,4 +21,4 @@ __HALT_COMPILER(); ?> " -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/cache_list/frontcontroller1.phpt b/ext/phar/tests/cache_list/frontcontroller1.phpt index d0d5552f16..91a5c9ea7d 100644 --- a/ext/phar/tests/cache_list/frontcontroller1.phpt +++ b/ext/phar/tests/cache_list/frontcontroller1.phpt @@ -2,6 +2,7 @@ Phar front controller other --INI-- phar.cache_list={PWD}/frontcontroller1.php [cache_list] +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller10.phpt b/ext/phar/tests/cache_list/frontcontroller10.phpt index 00177d4ff5..7c94da116c 100644 --- a/ext/phar/tests/cache_list/frontcontroller10.phpt +++ b/ext/phar/tests/cache_list/frontcontroller10.phpt @@ -3,6 +3,7 @@ Phar front controller rewrite access denied [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller10.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller11.phpt b/ext/phar/tests/cache_list/frontcontroller11.phpt index 25b147e194..e4912844de 100644 --- a/ext/phar/tests/cache_list/frontcontroller11.phpt +++ b/ext/phar/tests/cache_list/frontcontroller11.phpt @@ -3,6 +3,7 @@ Phar front controller mime type extension is not a string [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller11.php +detect_unicode=0 --SKIPIF-- @@ -19,4 +20,4 @@ Fatal error: Uncaught exception 'PharException' with message 'Key of MIME type o Stack trace: #0 %sfrontcontroller11.php(2): Phar::webPhar('whatever', 'index.php', '', Array) #1 {main} - thrown in %sfrontcontroller11.php on line 2 \ No newline at end of file + thrown in %sfrontcontroller11.php on line 2 diff --git a/ext/phar/tests/cache_list/frontcontroller12.phpt b/ext/phar/tests/cache_list/frontcontroller12.phpt index cfc7d0e43a..c98a84027a 100644 --- a/ext/phar/tests/cache_list/frontcontroller12.phpt +++ b/ext/phar/tests/cache_list/frontcontroller12.phpt @@ -3,6 +3,7 @@ Phar front controller mime type unknown int [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller12.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -18,4 +19,4 @@ Fatal error: Uncaught exception 'PharException' with message 'Unknown mime type Stack trace: #0 %sfrontcontroller12.php(2): Phar::webPhar('whatever', 'index.php', '', Array) #1 {main} - thrown in %sfrontcontroller12.php on line 2 \ No newline at end of file + thrown in %sfrontcontroller12.php on line 2 diff --git a/ext/phar/tests/cache_list/frontcontroller13.phpt b/ext/phar/tests/cache_list/frontcontroller13.phpt index e6c9dee4ae..deb02c25db 100644 --- a/ext/phar/tests/cache_list/frontcontroller13.phpt +++ b/ext/phar/tests/cache_list/frontcontroller13.phpt @@ -3,6 +3,7 @@ Phar front controller mime type not string/int [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller13.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -18,4 +19,4 @@ Fatal error: Uncaught exception 'PharException' with message 'Unknown mime type Stack trace: #0 %sfrontcontroller13.php(2): Phar::webPhar('whatever', 'index.php', '', Array) #1 {main} - thrown in %sfrontcontroller13.php on line 2 \ No newline at end of file + thrown in %sfrontcontroller13.php on line 2 diff --git a/ext/phar/tests/cache_list/frontcontroller14.phpt b/ext/phar/tests/cache_list/frontcontroller14.phpt index bbd9637d24..bc214141f4 100644 --- a/ext/phar/tests/cache_list/frontcontroller14.phpt +++ b/ext/phar/tests/cache_list/frontcontroller14.phpt @@ -2,6 +2,7 @@ Phar front controller mime type override, other [cache_list] --INI-- phar.cache_list={PWD}/frontcontroller14.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller15.phpt b/ext/phar/tests/cache_list/frontcontroller15.phpt index d142a5d742..22fed0af57 100644 --- a/ext/phar/tests/cache_list/frontcontroller15.phpt +++ b/ext/phar/tests/cache_list/frontcontroller15.phpt @@ -3,6 +3,7 @@ Phar front controller mime type override, Phar::PHPS [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller15.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller16.phpt b/ext/phar/tests/cache_list/frontcontroller16.phpt index 10bebdccef..4294c3d326 100644 --- a/ext/phar/tests/cache_list/frontcontroller16.phpt +++ b/ext/phar/tests/cache_list/frontcontroller16.phpt @@ -3,6 +3,7 @@ Phar front controller mime type override, Phar::PHP [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller16.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller17.phpt b/ext/phar/tests/cache_list/frontcontroller17.phpt index 35d3ae4e9c..47688e7b6a 100644 --- a/ext/phar/tests/cache_list/frontcontroller17.phpt +++ b/ext/phar/tests/cache_list/frontcontroller17.phpt @@ -2,6 +2,7 @@ Phar front controller mime type unknown [cache_list] --INI-- phar.cache_list={PWD}/frontcontroller17.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller18.phpt b/ext/phar/tests/cache_list/frontcontroller18.phpt index 5e94bf6ff5..8982706e5f 100644 --- a/ext/phar/tests/cache_list/frontcontroller18.phpt +++ b/ext/phar/tests/cache_list/frontcontroller18.phpt @@ -2,6 +2,7 @@ Phar front controller $_SERVER munging failure [cache_list] --INI-- phar.cache_list={PWD}/frontcontroller18.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller19.phpt b/ext/phar/tests/cache_list/frontcontroller19.phpt index bed0b1df31..0e5e8f1d07 100644 --- a/ext/phar/tests/cache_list/frontcontroller19.phpt +++ b/ext/phar/tests/cache_list/frontcontroller19.phpt @@ -2,6 +2,7 @@ Phar front controller $_SERVER munging failure 2 [cache_list] --INI-- phar.cache_list={PWD}/frontcontroller19.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller2.phpt b/ext/phar/tests/cache_list/frontcontroller2.phpt index 67ccfc1e04..2cf18f823c 100644 --- a/ext/phar/tests/cache_list/frontcontroller2.phpt +++ b/ext/phar/tests/cache_list/frontcontroller2.phpt @@ -3,6 +3,7 @@ Phar front controller PHP test [cache_list] --INI-- default_charset=UTF-8 phar.cache_list=frontcontroller2.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller20.phpt b/ext/phar/tests/cache_list/frontcontroller20.phpt index bf333c773c..b5499b1ef5 100644 --- a/ext/phar/tests/cache_list/frontcontroller20.phpt +++ b/ext/phar/tests/cache_list/frontcontroller20.phpt @@ -2,6 +2,7 @@ Phar front controller $_SERVER munging failure 3 [cache_list] --INI-- phar.cache_list={PWD}/frontcontroller20.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller21.phpt b/ext/phar/tests/cache_list/frontcontroller21.phpt index 829f2986e9..6d514891df 100644 --- a/ext/phar/tests/cache_list/frontcontroller21.phpt +++ b/ext/phar/tests/cache_list/frontcontroller21.phpt @@ -3,6 +3,7 @@ Phar front controller $_SERVER munging success [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller21.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -22,4 +23,4 @@ string(18) "/index.php?test=hi" string(32) "/frontcontroller21.php/index.php" string(22) "/frontcontroller21.php" string(%d) "%sfrontcontroller21.php" -string(40) "/frontcontroller21.php/index.php?test=hi" \ No newline at end of file +string(40) "/frontcontroller21.php/index.php?test=hi" diff --git a/ext/phar/tests/cache_list/frontcontroller22.phpt b/ext/phar/tests/cache_list/frontcontroller22.phpt index 2769b01f2f..3454e16239 100644 --- a/ext/phar/tests/cache_list/frontcontroller22.phpt +++ b/ext/phar/tests/cache_list/frontcontroller22.phpt @@ -3,6 +3,7 @@ Phar front controller include from cwd test 1 [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller22.phpt +detect_unicode=0 --SKIPIF-- --ENV-- @@ -19,4 +20,4 @@ Content-type: text/html; charset=UTF-8 Warning: include(./hi.php): failed to open stream: No such file or directory in phar://%s/oof/test.php on line %d -Warning: include(): Failed opening './hi.php' for inclusion (include_path='%s') in phar://%soof/test.php on line %d \ No newline at end of file +Warning: include(): Failed opening './hi.php' for inclusion (include_path='%s') in phar://%soof/test.php on line %d diff --git a/ext/phar/tests/cache_list/frontcontroller23.phpt b/ext/phar/tests/cache_list/frontcontroller23.phpt index 3da9631dfb..6a053e694c 100644 --- a/ext/phar/tests/cache_list/frontcontroller23.phpt +++ b/ext/phar/tests/cache_list/frontcontroller23.phpt @@ -3,6 +3,7 @@ Phar front controller with generic action router test [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller23.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -15,4 +16,4 @@ files/frontcontroller14.phar Content-type: text/html; charset=UTF-8 --EXPECTF-- string(9) "/hi/there" -string(%d) "phar://%sfrontcontroller23.php/html/index.php" \ No newline at end of file +string(%d) "phar://%sfrontcontroller23.php/html/index.php" diff --git a/ext/phar/tests/cache_list/frontcontroller24.phpt b/ext/phar/tests/cache_list/frontcontroller24.phpt index 561826bd78..e8892a3dab 100644 --- a/ext/phar/tests/cache_list/frontcontroller24.phpt +++ b/ext/phar/tests/cache_list/frontcontroller24.phpt @@ -3,6 +3,7 @@ Phar front controller with custom 404 php script [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller24.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -14,4 +15,4 @@ files/frontcontroller8.phar --EXPECTHEADERS-- Content-type: text/html; charset=UTF-8 --EXPECTF-- -My 404 is rawesome \ No newline at end of file +My 404 is rawesome diff --git a/ext/phar/tests/cache_list/frontcontroller25.phpt b/ext/phar/tests/cache_list/frontcontroller25.phpt index a8779392b6..2fdc23daad 100644 --- a/ext/phar/tests/cache_list/frontcontroller25.phpt +++ b/ext/phar/tests/cache_list/frontcontroller25.phpt @@ -3,6 +3,7 @@ Phar front controller with extra path_info [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller25.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -15,4 +16,4 @@ files/frontcontroller8.phar Content-type: text/html; charset=UTF-8 --EXPECTF-- string(42) "/frontcontroller25.php/a1.phps/extra/stuff" -string(12) "/extra/stuff" \ No newline at end of file +string(12) "/extra/stuff" diff --git a/ext/phar/tests/cache_list/frontcontroller26.phpt b/ext/phar/tests/cache_list/frontcontroller26.phpt index 86a1c1444c..dc3bdf8bc3 100644 --- a/ext/phar/tests/cache_list/frontcontroller26.phpt +++ b/ext/phar/tests/cache_list/frontcontroller26.phpt @@ -2,6 +2,7 @@ Phar front controller with unknown extension mime type [cache_list] --INI-- phar.cache_list={PWD}/frontcontroller26.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -13,4 +14,4 @@ files/frontcontroller8.phar --EXPECTHEADERS-- Content-type: application/octet-stream --EXPECTF-- - --ENV-- @@ -14,4 +15,4 @@ files/frontcontroller8.phar --EXPECTHEADERS-- Content-type: text/plain;charset=UTF-8 --EXPECTF-- -hi \ No newline at end of file +hi diff --git a/ext/phar/tests/cache_list/frontcontroller28.phpt b/ext/phar/tests/cache_list/frontcontroller28.phpt index 80059a9da2..ea76bb21f6 100644 --- a/ext/phar/tests/cache_list/frontcontroller28.phpt +++ b/ext/phar/tests/cache_list/frontcontroller28.phpt @@ -3,6 +3,7 @@ Phar front controller with huge file [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller28.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller29.phpt b/ext/phar/tests/cache_list/frontcontroller29.phpt index 1cd8f96f2d..5a5dacff52 100644 --- a/ext/phar/tests/cache_list/frontcontroller29.phpt +++ b/ext/phar/tests/cache_list/frontcontroller29.phpt @@ -3,6 +3,7 @@ Phar front controller with fatal error in php file [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller29.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -14,4 +15,4 @@ files/frontcontroller8.phar --EXPECTHEADERS-- Content-type: text/html; charset=UTF-8 --EXPECTF-- -Fatal error: Call to undefined function oopsie_daisy() in phar://%sfatalerror.phps on line 1 \ No newline at end of file +Fatal error: Call to undefined function oopsie_daisy() in phar://%sfatalerror.phps on line 1 diff --git a/ext/phar/tests/cache_list/frontcontroller3.phpt b/ext/phar/tests/cache_list/frontcontroller3.phpt index 1c1b479881..f5651e2d78 100644 --- a/ext/phar/tests/cache_list/frontcontroller3.phpt +++ b/ext/phar/tests/cache_list/frontcontroller3.phpt @@ -3,6 +3,7 @@ Phar front controller phps [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller3.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller30.phpt b/ext/phar/tests/cache_list/frontcontroller30.phpt index 5a63da874c..ca92c72880 100644 --- a/ext/phar/tests/cache_list/frontcontroller30.phpt +++ b/ext/phar/tests/cache_list/frontcontroller30.phpt @@ -2,6 +2,7 @@ Phar front controller with weird SCRIPT_NAME [cache_list] --INI-- phar.cache_list={PWD}/frontcontroller30.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -11,4 +12,4 @@ REQUEST_URI=/huh? files/frontcontroller8.phar --EXPECTF-- oops did not run -%a \ No newline at end of file +%a diff --git a/ext/phar/tests/cache_list/frontcontroller31.phpt b/ext/phar/tests/cache_list/frontcontroller31.phpt index 9ef1221a28..966ca1a40c 100644 --- a/ext/phar/tests/cache_list/frontcontroller31.phpt +++ b/ext/phar/tests/cache_list/frontcontroller31.phpt @@ -3,6 +3,7 @@ Phar front controller with invalid callback for rewrites [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller31.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -13,4 +14,4 @@ Content-type: text/html; charset=UTF-8 --FILE_EXTERNAL-- files/frontcontroller16.phar --EXPECT-- -phar error: invalid rewrite callback \ No newline at end of file +phar error: invalid rewrite callback diff --git a/ext/phar/tests/cache_list/frontcontroller32.phpt b/ext/phar/tests/cache_list/frontcontroller32.phpt index 59116907a5..49cb062e54 100644 --- a/ext/phar/tests/cache_list/frontcontroller32.phpt +++ b/ext/phar/tests/cache_list/frontcontroller32.phpt @@ -3,6 +3,7 @@ Phar front controller with valid callback that is not good [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller32.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -13,4 +14,4 @@ Content-type: text/html; charset=UTF-8 --FILE_EXTERNAL-- files/frontcontroller17.phar --EXPECTF-- -%ahar error: failed to call rewrite callback \ No newline at end of file +%ahar error: failed to call rewrite callback diff --git a/ext/phar/tests/cache_list/frontcontroller33.phpt b/ext/phar/tests/cache_list/frontcontroller33.phpt index 9573854823..34244d844e 100644 --- a/ext/phar/tests/cache_list/frontcontroller33.phpt +++ b/ext/phar/tests/cache_list/frontcontroller33.phpt @@ -3,6 +3,7 @@ Phar front controller with valid callback that does not return any value [cache_ --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller33.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -13,4 +14,4 @@ Content-type: text/html; charset=UTF-8 --FILE_EXTERNAL-- files/frontcontroller18.phar --EXPECTF-- -phar error: rewrite callback must return a string or false \ No newline at end of file +phar error: rewrite callback must return a string or false diff --git a/ext/phar/tests/cache_list/frontcontroller34.phpt b/ext/phar/tests/cache_list/frontcontroller34.phpt index 83c22f58f8..f6677cc04b 100644 --- a/ext/phar/tests/cache_list/frontcontroller34.phpt +++ b/ext/phar/tests/cache_list/frontcontroller34.phpt @@ -3,6 +3,7 @@ Phar front controller with cwd [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller34.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller4.phpt b/ext/phar/tests/cache_list/frontcontroller4.phpt index 5cf3682277..16961a1e46 100644 --- a/ext/phar/tests/cache_list/frontcontroller4.phpt +++ b/ext/phar/tests/cache_list/frontcontroller4.phpt @@ -2,6 +2,7 @@ Phar front controller index.php relocate (no /) [cache_list] --INI-- phar.cache_list={PWD}/frontcontroller4.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller5.phpt b/ext/phar/tests/cache_list/frontcontroller5.phpt index 2c738d7bfb..93ea37a9af 100644 --- a/ext/phar/tests/cache_list/frontcontroller5.phpt +++ b/ext/phar/tests/cache_list/frontcontroller5.phpt @@ -2,6 +2,7 @@ Phar front controller index.php relocate [cache_list] --INI-- phar.cache_list={PWD}/frontcontroller5.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller6.phpt b/ext/phar/tests/cache_list/frontcontroller6.phpt index 2480be4129..d498072fa2 100644 --- a/ext/phar/tests/cache_list/frontcontroller6.phpt +++ b/ext/phar/tests/cache_list/frontcontroller6.phpt @@ -2,6 +2,7 @@ Phar front controller 404 [cache_list] --INI-- phar.cache_list={PWD}/frontcontroller6.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -20,4 +21,4 @@ Status: 404 Not Found

404 - File /notfound.php Not Found

- \ No newline at end of file + diff --git a/ext/phar/tests/cache_list/frontcontroller7.phpt b/ext/phar/tests/cache_list/frontcontroller7.phpt index a8a88a95fe..c4d5514ade 100644 --- a/ext/phar/tests/cache_list/frontcontroller7.phpt +++ b/ext/phar/tests/cache_list/frontcontroller7.phpt @@ -2,6 +2,7 @@ Phar front controller alternate index file [cache_list] --INI-- phar.cache_list={PWD}/frontcontroller7.php +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/cache_list/frontcontroller8.phpt b/ext/phar/tests/cache_list/frontcontroller8.phpt index bf9b390def..bc6829cba5 100644 --- a/ext/phar/tests/cache_list/frontcontroller8.phpt +++ b/ext/phar/tests/cache_list/frontcontroller8.phpt @@ -2,6 +2,7 @@ Phar front controller no index file 404 [cache_list] --INI-- phar.cache_list={PWD}/frontcontroller8.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -20,4 +21,4 @@ Status: 404 Not Found

404 - File /index.php Not Found

- \ No newline at end of file + diff --git a/ext/phar/tests/cache_list/frontcontroller9.phpt b/ext/phar/tests/cache_list/frontcontroller9.phpt index 1a8b9168cc..fb6f72ac22 100644 --- a/ext/phar/tests/cache_list/frontcontroller9.phpt +++ b/ext/phar/tests/cache_list/frontcontroller9.phpt @@ -3,6 +3,7 @@ Phar front controller rewrite array [cache_list] --INI-- default_charset=UTF-8 phar.cache_list={PWD}/frontcontroller9.php +detect_unicode=0 --SKIPIF-- --ENV-- @@ -17,4 +18,4 @@ Content-type: text/html; charset=UTF-8 <?php function hio(){} - \ No newline at end of file + diff --git a/ext/phar/tests/delete.phpt b/ext/phar/tests/delete.phpt index 1d98509064..f91b11b3d5 100644 --- a/ext/phar/tests/delete.phpt +++ b/ext/phar/tests/delete.phpt @@ -5,6 +5,7 @@ Phar: delete test --INI-- phar.readonly=0 phar.require_hash=0 +detect_unicode=0 --FILE-- --ENV-- @@ -15,4 +16,4 @@ Content-type: text/html; charset=UTF-8 --EXPECTF-- string(9) "\Web\View" -Parse error: syntax error, unexpected T_ECHO, expecting T_FUNCTION in phar://%sfatal_error_webphar.php/Web/View.php on line 380 \ No newline at end of file +Parse error: syntax error, unexpected T_ECHO, expecting T_FUNCTION in phar://%sfatal_error_webphar.php/Web/View.php on line 380 diff --git a/ext/phar/tests/file_get_contents.phpt b/ext/phar/tests/file_get_contents.phpt index fcc9d64655..b931176e50 100644 --- a/ext/phar/tests/file_get_contents.phpt +++ b/ext/phar/tests/file_get_contents.phpt @@ -5,6 +5,7 @@ Phar: test file_get_contents() interception --INI-- phar.require_hash=1 phar.readonly=0 +detect_unicode=0 --FILE-- --EXPECT-- -hihi===DONE=== \ No newline at end of file +hihi===DONE=== diff --git a/ext/phar/tests/fopen.phpt b/ext/phar/tests/fopen.phpt index 5b694d6e2d..b10bcb3a53 100644 --- a/ext/phar/tests/fopen.phpt +++ b/ext/phar/tests/fopen.phpt @@ -6,6 +6,7 @@ Phar: test fopen() interception --INI-- phar.require_hash=1 phar.readonly=0 +detect_unicode=0 --FILE-- --ENV-- diff --git a/ext/phar/tests/frontcontroller1.phpt b/ext/phar/tests/frontcontroller1.phpt index 7093323617..0186b12529 100644 --- a/ext/phar/tests/frontcontroller1.phpt +++ b/ext/phar/tests/frontcontroller1.phpt @@ -2,6 +2,8 @@ Phar front controller other --SKIPIF-- +--INI-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/frontcontroller1.php REQUEST_URI=/frontcontroller1.php/a.jpg diff --git a/ext/phar/tests/frontcontroller10.phpt b/ext/phar/tests/frontcontroller10.phpt index 667d5c243c..b6a0b488f6 100644 --- a/ext/phar/tests/frontcontroller10.phpt +++ b/ext/phar/tests/frontcontroller10.phpt @@ -2,6 +2,7 @@ Phar front controller rewrite access denied --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/frontcontroller12.phpt b/ext/phar/tests/frontcontroller12.phpt index 956ea1c050..b85b2f716b 100644 --- a/ext/phar/tests/frontcontroller12.phpt +++ b/ext/phar/tests/frontcontroller12.phpt @@ -2,6 +2,7 @@ Phar front controller mime type unknown int --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- @@ -17,4 +18,4 @@ Fatal error: Uncaught exception 'PharException' with message 'Unknown mime type Stack trace: #0 %sfrontcontroller12.php(2): Phar::webPhar('whatever', 'index.php', '', Array) #1 {main} - thrown in %sfrontcontroller12.php on line 2 \ No newline at end of file + thrown in %sfrontcontroller12.php on line 2 diff --git a/ext/phar/tests/frontcontroller13.phpt b/ext/phar/tests/frontcontroller13.phpt index 717e56996f..cde41f7cdd 100644 --- a/ext/phar/tests/frontcontroller13.phpt +++ b/ext/phar/tests/frontcontroller13.phpt @@ -2,6 +2,7 @@ Phar front controller mime type not string/int --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- @@ -17,4 +18,4 @@ Fatal error: Uncaught exception 'PharException' with message 'Unknown mime type Stack trace: #0 %sfrontcontroller13.php(2): Phar::webPhar('whatever', 'index.php', '', Array) #1 {main} - thrown in %sfrontcontroller13.php on line 2 \ No newline at end of file + thrown in %sfrontcontroller13.php on line 2 diff --git a/ext/phar/tests/frontcontroller14.phpt b/ext/phar/tests/frontcontroller14.phpt index 2bdb145c6e..13de43f426 100644 --- a/ext/phar/tests/frontcontroller14.phpt +++ b/ext/phar/tests/frontcontroller14.phpt @@ -2,6 +2,8 @@ Phar front controller mime type override, other --SKIPIF-- +--INI-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/frontcontroller14.php REQUEST_URI=/frontcontroller14.php/a.jpg diff --git a/ext/phar/tests/frontcontroller15.phpt b/ext/phar/tests/frontcontroller15.phpt index 370098014d..8dbf144618 100644 --- a/ext/phar/tests/frontcontroller15.phpt +++ b/ext/phar/tests/frontcontroller15.phpt @@ -2,6 +2,7 @@ Phar front controller mime type override, Phar::PHPS --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/frontcontroller16.phpt b/ext/phar/tests/frontcontroller16.phpt index 712af40bf3..8b0499b4b4 100644 --- a/ext/phar/tests/frontcontroller16.phpt +++ b/ext/phar/tests/frontcontroller16.phpt @@ -2,6 +2,7 @@ Phar front controller mime type override, Phar::PHP --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/frontcontroller17.phpt b/ext/phar/tests/frontcontroller17.phpt index 233e2e2a49..ce8cda4642 100644 --- a/ext/phar/tests/frontcontroller17.phpt +++ b/ext/phar/tests/frontcontroller17.phpt @@ -2,6 +2,8 @@ Phar front controller mime type unknown --SKIPIF-- +--INI-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/frontcontroller17.php REQUEST_URI=/frontcontroller17.php/fronk.gronk diff --git a/ext/phar/tests/frontcontroller18.phpt b/ext/phar/tests/frontcontroller18.phpt index 19aea45563..3d867070ab 100644 --- a/ext/phar/tests/frontcontroller18.phpt +++ b/ext/phar/tests/frontcontroller18.phpt @@ -2,6 +2,8 @@ Phar front controller $_SERVER munging failure --SKIPIF-- +--INI-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/frontcontroller18.php REQUEST_URI=/frontcontroller18.php/fronk.gronk diff --git a/ext/phar/tests/frontcontroller19.phpt b/ext/phar/tests/frontcontroller19.phpt index 9adafa2b30..8c72e47056 100644 --- a/ext/phar/tests/frontcontroller19.phpt +++ b/ext/phar/tests/frontcontroller19.phpt @@ -2,6 +2,8 @@ Phar front controller $_SERVER munging failure 2 --SKIPIF-- +--INI-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/frontcontroller19.php REQUEST_URI=/frontcontroller19.php/ diff --git a/ext/phar/tests/frontcontroller2.phpt b/ext/phar/tests/frontcontroller2.phpt index d0744dea1d..987a04ea99 100644 --- a/ext/phar/tests/frontcontroller2.phpt +++ b/ext/phar/tests/frontcontroller2.phpt @@ -2,6 +2,7 @@ Phar front controller PHP test --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/frontcontroller20.phpt b/ext/phar/tests/frontcontroller20.phpt index 45e2bfc25e..bf87cd9688 100644 --- a/ext/phar/tests/frontcontroller20.phpt +++ b/ext/phar/tests/frontcontroller20.phpt @@ -2,6 +2,8 @@ Phar front controller $_SERVER munging failure 3 --SKIPIF-- +--INI-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/frontcontroller20.php REQUEST_URI=/frontcontroller20.php/ diff --git a/ext/phar/tests/frontcontroller21.phpt b/ext/phar/tests/frontcontroller21.phpt index bf50c6e801..1c61ceb602 100644 --- a/ext/phar/tests/frontcontroller21.phpt +++ b/ext/phar/tests/frontcontroller21.phpt @@ -2,6 +2,7 @@ Phar front controller $_SERVER munging success --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- @@ -21,4 +22,4 @@ string(18) "/index.php?test=hi" string(32) "/frontcontroller21.php/index.php" string(22) "/frontcontroller21.php" string(%d) "%sfrontcontroller21.php" -string(40) "/frontcontroller21.php/index.php?test=hi" \ No newline at end of file +string(40) "/frontcontroller21.php/index.php?test=hi" diff --git a/ext/phar/tests/frontcontroller22.phpt b/ext/phar/tests/frontcontroller22.phpt index b85c1eb497..f19c88b595 100644 --- a/ext/phar/tests/frontcontroller22.phpt +++ b/ext/phar/tests/frontcontroller22.phpt @@ -2,6 +2,7 @@ Phar front controller include from cwd test 1 --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- @@ -18,4 +19,4 @@ Content-type: text/html; charset=UTF-8 Warning: include(./hi.php): failed to open stream: No such file or directory in phar://%s/oof/test.php on line %d -Warning: include(): Failed opening './hi.php' for inclusion (include_path='%s') in phar://%soof/test.php on line %d \ No newline at end of file +Warning: include(): Failed opening './hi.php' for inclusion (include_path='%s') in phar://%soof/test.php on line %d diff --git a/ext/phar/tests/frontcontroller23.phpt b/ext/phar/tests/frontcontroller23.phpt index 24464c9beb..4a676028b2 100644 --- a/ext/phar/tests/frontcontroller23.phpt +++ b/ext/phar/tests/frontcontroller23.phpt @@ -2,6 +2,7 @@ Phar front controller with generic action router test --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- @@ -14,4 +15,4 @@ files/frontcontroller14.phar Content-type: text/html; charset=UTF-8 --EXPECTF-- string(9) "/hi/there" -string(%d) "phar://%sfrontcontroller23.php/html/index.php" \ No newline at end of file +string(%d) "phar://%sfrontcontroller23.php/html/index.php" diff --git a/ext/phar/tests/frontcontroller24.phpt b/ext/phar/tests/frontcontroller24.phpt index 767971ee91..8d60ce2f7c 100644 --- a/ext/phar/tests/frontcontroller24.phpt +++ b/ext/phar/tests/frontcontroller24.phpt @@ -2,6 +2,7 @@ Phar front controller with custom 404 php script --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- @@ -13,4 +14,4 @@ files/frontcontroller8.phar --EXPECTHEADERS-- Content-type: text/html; charset=UTF-8 --EXPECTF-- -My 404 is rawesome \ No newline at end of file +My 404 is rawesome diff --git a/ext/phar/tests/frontcontroller25.phpt b/ext/phar/tests/frontcontroller25.phpt index 9b383de413..da4e58b49a 100644 --- a/ext/phar/tests/frontcontroller25.phpt +++ b/ext/phar/tests/frontcontroller25.phpt @@ -2,6 +2,7 @@ Phar front controller with extra path_info --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- @@ -14,4 +15,4 @@ files/frontcontroller8.phar Content-type: text/html; charset=UTF-8 --EXPECTF-- string(42) "/frontcontroller25.php/a1.phps/extra/stuff" -string(12) "/extra/stuff" \ No newline at end of file +string(12) "/extra/stuff" diff --git a/ext/phar/tests/frontcontroller26.phpt b/ext/phar/tests/frontcontroller26.phpt index a8097b0886..9c5a14d512 100644 --- a/ext/phar/tests/frontcontroller26.phpt +++ b/ext/phar/tests/frontcontroller26.phpt @@ -2,6 +2,8 @@ Phar front controller with unknown extension mime type --SKIPIF-- +--INI-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/frontcontroller26.php REQUEST_URI=/frontcontroller26.php/unknown.ext @@ -11,4 +13,4 @@ files/frontcontroller8.phar --EXPECTHEADERS-- Content-type: application/octet-stream --EXPECTF-- - --ENV-- @@ -13,4 +14,4 @@ files/frontcontroller8.phar --EXPECTHEADERS-- Content-type: text/plain;charset=UTF-8 --EXPECTF-- -hi \ No newline at end of file +hi diff --git a/ext/phar/tests/frontcontroller28.phpt b/ext/phar/tests/frontcontroller28.phpt index 577800885b..5871f327a2 100644 --- a/ext/phar/tests/frontcontroller28.phpt +++ b/ext/phar/tests/frontcontroller28.phpt @@ -2,6 +2,7 @@ Phar front controller with huge file --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/frontcontroller29.phpt b/ext/phar/tests/frontcontroller29.phpt index 0afc17929f..61f9b1bfc1 100644 --- a/ext/phar/tests/frontcontroller29.phpt +++ b/ext/phar/tests/frontcontroller29.phpt @@ -2,6 +2,7 @@ Phar front controller with fatal error in php file --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- @@ -13,4 +14,4 @@ files/frontcontroller8.phar --EXPECTHEADERS-- Content-type: text/html; charset=UTF-8 --EXPECTF-- -Fatal error: Call to undefined function oopsie_daisy() in phar://%sfatalerror.phps on line 1 \ No newline at end of file +Fatal error: Call to undefined function oopsie_daisy() in phar://%sfatalerror.phps on line 1 diff --git a/ext/phar/tests/frontcontroller3.phpt b/ext/phar/tests/frontcontroller3.phpt index ac36485837..6d025aec29 100644 --- a/ext/phar/tests/frontcontroller3.phpt +++ b/ext/phar/tests/frontcontroller3.phpt @@ -2,6 +2,7 @@ Phar front controller phps --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/frontcontroller30.phpt b/ext/phar/tests/frontcontroller30.phpt index de6960c244..9b38bccd4f 100644 --- a/ext/phar/tests/frontcontroller30.phpt +++ b/ext/phar/tests/frontcontroller30.phpt @@ -2,6 +2,8 @@ Phar front controller with weird SCRIPT_NAME --SKIPIF-- +--INI-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/huh? REQUEST_URI=/huh? @@ -9,4 +11,4 @@ REQUEST_URI=/huh? files/frontcontroller8.phar --EXPECTF-- oops did not run -%a \ No newline at end of file +%a diff --git a/ext/phar/tests/frontcontroller31.phpt b/ext/phar/tests/frontcontroller31.phpt index 13c305d2f3..4995da74ef 100644 --- a/ext/phar/tests/frontcontroller31.phpt +++ b/ext/phar/tests/frontcontroller31.phpt @@ -2,6 +2,7 @@ Phar front controller with invalid callback for rewrites --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- @@ -12,4 +13,4 @@ Content-type: text/html; charset=UTF-8 --FILE_EXTERNAL-- files/frontcontroller16.phar --EXPECT-- -phar error: invalid rewrite callback \ No newline at end of file +phar error: invalid rewrite callback diff --git a/ext/phar/tests/frontcontroller32.phpt b/ext/phar/tests/frontcontroller32.phpt index 58f6fffa00..2459312dc5 100644 --- a/ext/phar/tests/frontcontroller32.phpt +++ b/ext/phar/tests/frontcontroller32.phpt @@ -2,6 +2,7 @@ Phar front controller with valid callback that is not good --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- @@ -12,4 +13,4 @@ Content-type: text/html; charset=UTF-8 --FILE_EXTERNAL-- files/frontcontroller17.phar --EXPECTF-- -%ahar error: failed to call rewrite callback \ No newline at end of file +%ahar error: failed to call rewrite callback diff --git a/ext/phar/tests/frontcontroller33.phpt b/ext/phar/tests/frontcontroller33.phpt index 8593e31766..58611080da 100644 --- a/ext/phar/tests/frontcontroller33.phpt +++ b/ext/phar/tests/frontcontroller33.phpt @@ -2,6 +2,7 @@ Phar front controller with valid callback that does not return any value --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- @@ -12,4 +13,4 @@ Content-type: text/html; charset=UTF-8 --FILE_EXTERNAL-- files/frontcontroller18.phar --EXPECTF-- -phar error: rewrite callback must return a string or false \ No newline at end of file +phar error: rewrite callback must return a string or false diff --git a/ext/phar/tests/frontcontroller34.phpt b/ext/phar/tests/frontcontroller34.phpt index 34a49ded4d..bf1cf7f244 100644 --- a/ext/phar/tests/frontcontroller34.phpt +++ b/ext/phar/tests/frontcontroller34.phpt @@ -2,6 +2,7 @@ Phar front controller with cwd --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- diff --git a/ext/phar/tests/frontcontroller4.phpt b/ext/phar/tests/frontcontroller4.phpt index f2482b9219..d1cb2a4c63 100644 --- a/ext/phar/tests/frontcontroller4.phpt +++ b/ext/phar/tests/frontcontroller4.phpt @@ -2,6 +2,8 @@ Phar front controller index.php relocate (no /) --SKIPIF-- +--INI-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/frontcontroller4.php REQUEST_URI=/frontcontroller4.php diff --git a/ext/phar/tests/frontcontroller5.phpt b/ext/phar/tests/frontcontroller5.phpt index 1990a2b008..48771efc8f 100644 --- a/ext/phar/tests/frontcontroller5.phpt +++ b/ext/phar/tests/frontcontroller5.phpt @@ -2,6 +2,8 @@ Phar front controller index.php relocate --SKIPIF-- +--INI-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/frontcontroller5.php REQUEST_URI=/frontcontroller5.php/ diff --git a/ext/phar/tests/frontcontroller6.phpt b/ext/phar/tests/frontcontroller6.phpt index 1a2cc2cd23..1ab4e20032 100644 --- a/ext/phar/tests/frontcontroller6.phpt +++ b/ext/phar/tests/frontcontroller6.phpt @@ -2,6 +2,8 @@ Phar front controller 404 --SKIPIF-- +--INI-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/frontcontroller6.php REQUEST_URI=/frontcontroller6.php/notfound.php @@ -18,4 +20,4 @@ Status: 404 Not Found

404 - File /notfound.php Not Found

- \ No newline at end of file + diff --git a/ext/phar/tests/frontcontroller7.phpt b/ext/phar/tests/frontcontroller7.phpt index aff2087522..c30a366e37 100644 --- a/ext/phar/tests/frontcontroller7.phpt +++ b/ext/phar/tests/frontcontroller7.phpt @@ -2,6 +2,8 @@ Phar front controller alternate index file --SKIPIF-- +--INI-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/frontcontroller7.php REQUEST_URI=/frontcontroller7.php/ diff --git a/ext/phar/tests/frontcontroller8.phpt b/ext/phar/tests/frontcontroller8.phpt index 36e3206d66..88312c4061 100644 --- a/ext/phar/tests/frontcontroller8.phpt +++ b/ext/phar/tests/frontcontroller8.phpt @@ -2,6 +2,8 @@ Phar front controller no index file 404 --SKIPIF-- +--INI-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/frontcontroller8.php REQUEST_URI=/frontcontroller8.php/ @@ -18,4 +20,4 @@ Status: 404 Not Found

404 - File /index.php Not Found

- \ No newline at end of file + diff --git a/ext/phar/tests/frontcontroller9.phpt b/ext/phar/tests/frontcontroller9.phpt index d47a2898e6..36cf2713cb 100644 --- a/ext/phar/tests/frontcontroller9.phpt +++ b/ext/phar/tests/frontcontroller9.phpt @@ -2,6 +2,7 @@ Phar front controller rewrite array --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --ENV-- @@ -16,4 +17,4 @@ Content-type: text/html; charset=UTF-8 <?php function hio(){} - \ No newline at end of file + diff --git a/ext/phar/tests/include_path_advanced.phpt b/ext/phar/tests/include_path_advanced.phpt index 6feee422b4..81e528130c 100644 --- a/ext/phar/tests/include_path_advanced.phpt +++ b/ext/phar/tests/include_path_advanced.phpt @@ -2,6 +2,7 @@ Phar: include_path advanced code coverage test --INI-- default_charset=UTF-8 +detect_unicode=0 --SKIPIF-- --FILE_EXTERNAL-- @@ -9,4 +10,4 @@ files/include_path.phar --EXPECT-- file1.php test/file1.php -ok \ No newline at end of file +ok diff --git a/ext/phar/tests/mounteddir.phpt b/ext/phar/tests/mounteddir.phpt index e1308956fe..b9bf58922f 100644 --- a/ext/phar/tests/mounteddir.phpt +++ b/ext/phar/tests/mounteddir.phpt @@ -7,6 +7,7 @@ if (version_compare(PHP_VERSION, "6.0", ">")) die("skip pre-unicode version of P ?> --INI-- phar.readonly=0 +detect_unicode=0 --FILE-- --INI-- phar.readonly=0 +detect_unicode=0 --FILE-- --EXPECT-- -hihi===DONE=== \ No newline at end of file +hihi===DONE=== diff --git a/ext/phar/tests/rename.phpt b/ext/phar/tests/rename.phpt index c73c98ec81..2f12540589 100644 --- a/ext/phar/tests/rename.phpt +++ b/ext/phar/tests/rename.phpt @@ -5,6 +5,7 @@ Phar: rename test --INI-- phar.readonly=0 phar.require_hash=0 +detect_unicode=0 --FILE-- --INI-- phar.readonly=0 +detect_unicode=0 --FILE-- +--INI-- +detect_unicode=0 --FILE-- +detect_unicode=0 --ENV-- SCRIPT_NAME=/withphar_web.php REQUEST_URI=/withphar_web.php/web.php diff --git a/ext/phar/tests/zip/notphar.phpt b/ext/phar/tests/zip/notphar.phpt index 3450c84bbd..c0648c4953 100644 --- a/ext/phar/tests/zip/notphar.phpt +++ b/ext/phar/tests/zip/notphar.phpt @@ -4,6 +4,7 @@ Phar: a non-executable zip with no stub named .phar.zip --INI-- phar.readonly=1 +detect_unicode=0 --FILE-- Date: Thu, 19 Jul 2012 00:27:34 +0800 Subject: Fixed bug #62460 (php binaries installed as binary.dSYM) See http://marc.info/?l=php-cvs&m=125961714419896 Mac OS X 10.7&10.8 affected too. --- configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index fa6c55769e..d896583313 100644 --- a/configure.in +++ b/configure.in @@ -1335,10 +1335,10 @@ PHP_CONFIGURE_PART(Configuring libtool) LDFLAGS="$LDFLAGS $PHP_AIX_LDFLAGS" -dnl Autoconf 2.13's libtool checks go slightly nuts on Mac OS X 10.5 and 10.6. +dnl Autoconf 2.13's libtool checks go slightly nuts on Mac OS X 10.5, 10.6, 10.7 and 10.8. dnl This hack works around it. Ugly. case $host_alias in -*darwin9*|*darwin10*) +*darwin9*|*darwin10*|*darwin11*|*darwin12*) ac_cv_exeext= ;; esac -- cgit v1.2.1 From a239658b9ed06008ca0cbb69c4d85fdfa506c01c Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Sun, 5 Aug 2012 20:31:08 -0700 Subject: fix for #62460 --- NEWS | 1 + 1 file changed, 1 insertion(+) diff --git a/NEWS b/NEWS index c22d7c2fd4..70cbe8ed83 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,7 @@ PHP NEWS . Fixed bug #62744 (dangling pointers made by zend_disable_class). (Laruence) . Fixed bug #62716 (munmap() is called with the incorrect length). (slangley@google.com) + . Fixed bug ##62460 (php binaries installed as binary.dSYM). (Reeze Xia) . Fixed bug #60194 (--with-zend-multibyte and --enable-debug reports LEAK with run-test.php). (Laruence) -- cgit v1.2.1 From ed793b2a3f857fd49c0c1b036062140da5b3e674 Mon Sep 17 00:00:00 2001 From: Matt Ficken Date: Mon, 6 Aug 2012 14:07:42 +0200 Subject: Added the intl tests extracted from Symfony. These are making the intl ext crash with ICU at least 4.6, but probably with earlier versions too. --- .../tests/symfony_format_type_int32_intl1.phpt | 49 ++++++++++++++++++++++ .../tests/symfony_format_type_int32_intl2.phpt | 33 +++++++++++++++ .../tests/symfony_format_type_int32_intl3.phpt | 32 ++++++++++++++ .../tests/symfony_format_type_int32_intl4.phpt | 30 +++++++++++++ .../tests/symfony_format_type_int32_intl5.phpt | 30 +++++++++++++ .../tests/symfony_format_type_int32_intl6.phpt | 32 ++++++++++++++ .../tests/symfony_format_type_int32_intl7.phpt | 32 ++++++++++++++ 7 files changed, 238 insertions(+) create mode 100644 ext/intl/tests/symfony_format_type_int32_intl1.phpt create mode 100644 ext/intl/tests/symfony_format_type_int32_intl2.phpt create mode 100644 ext/intl/tests/symfony_format_type_int32_intl3.phpt create mode 100644 ext/intl/tests/symfony_format_type_int32_intl4.phpt create mode 100644 ext/intl/tests/symfony_format_type_int32_intl5.phpt create mode 100644 ext/intl/tests/symfony_format_type_int32_intl6.phpt create mode 100644 ext/intl/tests/symfony_format_type_int32_intl7.phpt diff --git a/ext/intl/tests/symfony_format_type_int32_intl1.phpt b/ext/intl/tests/symfony_format_type_int32_intl1.phpt new file mode 100644 index 0000000000..2867b35690 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int32_intl1.phpt @@ -0,0 +1,49 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #1 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + int(1) + [2]=> + string(1) "1" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int32_intl2.phpt b/ext/intl/tests/symfony_format_type_int32_intl2.phpt new file mode 100644 index 0000000000..6a65a0a809 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int32_intl2.phpt @@ -0,0 +1,33 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #2 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(1.1) + [2]=> + string(1) "1" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int32_intl3.phpt b/ext/intl/tests/symfony_format_type_int32_intl3.phpt new file mode 100644 index 0000000000..5e657db419 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int32_intl3.phpt @@ -0,0 +1,32 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #3 +--SKIPIF-- + +--FILE-- +format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range.";}'); + +var_dump($unit_test_args); + +// execute the code from #testFormatTypeInt32Intl +$unit_test_args[0]->format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(4) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(2147483648) + [2]=> + string(14) "-2,147,483,648" + [3]=> + string(83) "->format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range." +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int32_intl4.phpt b/ext/intl/tests/symfony_format_type_int32_intl4.phpt new file mode 100644 index 0000000000..54043d92e9 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int32_intl4.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #4 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + int(1) + [2]=> + string(7) "SFD1.00" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int32_intl5.phpt b/ext/intl/tests/symfony_format_type_int32_intl5.phpt new file mode 100644 index 0000000000..d5f78d7119 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int32_intl5.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #5 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(1.1) + [2]=> + string(7) "SFD1.00" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int32_intl6.phpt b/ext/intl/tests/symfony_format_type_int32_intl6.phpt new file mode 100644 index 0000000000..fa708799d1 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int32_intl6.phpt @@ -0,0 +1,32 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #6 +--SKIPIF-- + +--FILE-- +format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range.";}'); + +var_dump($unit_test_args); + +// execute the code from #testFormatTypeInt32Intl +$unit_test_args[0]->format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(4) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(2147483648) + [2]=> + string(21) "(SFD2,147,483,648.00)" + [3]=> + string(83) "->format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range." +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int32_intl7.phpt b/ext/intl/tests/symfony_format_type_int32_intl7.phpt new file mode 100644 index 0000000000..5bbe426677 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int32_intl7.phpt @@ -0,0 +1,32 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #7 +--SKIPIF-- + +--FILE-- +format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range.";}'); + +var_dump($unit_test_args); + +// execute the code from #testFormatTypeInt32Intl +$unit_test_args[0]->format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(4) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(-2147483649) + [2]=> + string(19) "SFD2,147,483,647.00" + [3]=> + string(83) "->format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range." +} +== didn't crash == -- cgit v1.2.1 From c4b26cc1b0b0521c75e653fffec2a9e3b4bf8cbb Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Thu, 9 Aug 2012 14:02:33 -0400 Subject: Update to work with libxml 2.9.0 --- ext/dom/documenttype.c | 4 ++++ ext/dom/node.c | 8 ++++++++ ext/simplexml/simplexml.c | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/ext/dom/documenttype.c b/ext/dom/documenttype.c index d61ba796ab..eee3b5f887 100644 --- a/ext/dom/documenttype.c +++ b/ext/dom/documenttype.c @@ -205,7 +205,11 @@ int dom_documenttype_internal_subset_read(dom_object *obj, zval **retval TSRMLS_ if (buff != NULL) { xmlNodeDumpOutput (buff, NULL, (xmlNodePtr) intsubset, 0, 0, NULL); xmlOutputBufferFlush(buff); +#ifdef LIBXML2_NEW_BUFFER + ZVAL_STRINGL(*retval, xmlOutputBufferGetContent(buff), xmlOutputBufferGetSize(buff), 1); +#else ZVAL_STRINGL(*retval, buff->buffer->content, buff->buffer->use, 1); +#endif (void)xmlOutputBufferClose(buff); return SUCCESS; } diff --git a/ext/dom/node.c b/ext/dom/node.c index 5bcb234762..727d1bcef3 100644 --- a/ext/dom/node.c +++ b/ext/dom/node.c @@ -1895,9 +1895,17 @@ static void dom_canonicalization(INTERNAL_FUNCTION_PARAMETERS, int mode) /* {{{ RETVAL_FALSE; } else { if (mode == 0) { +#ifdef LIBXML2_NEW_BUFFER + ret = xmlOutputBufferGetSize(buf); +#else ret = buf->buffer->use; +#endif if (ret > 0) { +#ifdef LIBXML2_NEW_BUFFER + RETVAL_STRINGL((char *) xmlOutputBufferGetContent(buf), ret, 1); +#else RETVAL_STRINGL((char *) buf->buffer->content, ret, 1); +#endif } else { RETVAL_EMPTY_STRING(); } diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c index a379111021..236859686f 100644 --- a/ext/simplexml/simplexml.c +++ b/ext/simplexml/simplexml.c @@ -1387,7 +1387,11 @@ SXE_METHOD(asXML) xmlNodeDumpOutput(outbuf, (xmlDocPtr) sxe->document->ptr, node, 0, 0, ((xmlDocPtr) sxe->document->ptr)->encoding); xmlOutputBufferFlush(outbuf); +#ifdef LIBXML2_NEW_BUFFER + RETVAL_STRINGL((char *)xmlOutputBufferGetContent(outbuf), xmlOutputBufferGetSize(outbuf), 1); +#else RETVAL_STRINGL((char *)outbuf->buffer->content, outbuf->buffer->use, 1); +#endif xmlOutputBufferClose(outbuf); } } else { -- cgit v1.2.1 From 7130887719684cff57cb904a6f1b2de5016a00c8 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 11 Aug 2012 00:22:52 +0800 Subject: Fix test, from PR 158 --- ext/xmlrpc/tests/bug61264.phpt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ext/xmlrpc/tests/bug61264.phpt b/ext/xmlrpc/tests/bug61264.phpt index b1da27f252..24e4b2749c 100644 --- a/ext/xmlrpc/tests/bug61264.phpt +++ b/ext/xmlrpc/tests/bug61264.phpt @@ -1,5 +1,7 @@ --TEST-- Bug #61264: xmlrpc_parse_method_descriptions leaks temporary variable +--SKIPIF-- + --FILE-- Date: Sat, 11 Aug 2012 00:34:37 +0800 Subject: Skip tests reply on Zend MM turned on Those two tests have expect memory exhausted fatal error --- ext/oci8/tests/pecl_bug10194_blob.phpt | 3 +++ ext/standard/tests/strings/str_pad_variation5.phpt | 3 +++ 2 files changed, 6 insertions(+) diff --git a/ext/oci8/tests/pecl_bug10194_blob.phpt b/ext/oci8/tests/pecl_bug10194_blob.phpt index faf87ab3c1..96f94bcf4c 100644 --- a/ext/oci8/tests/pecl_bug10194_blob.phpt +++ b/ext/oci8/tests/pecl_bug10194_blob.phpt @@ -6,6 +6,9 @@ $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on t require(dirname(__FILE__).'/skipif.inc'); if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platforms only"); if (getenv('SKIP_SLOW_TESTS')) die('skip slow tests excluded by request'); +if (getenv("USE_ZEND_ALLOC") === "0") { + die("skip Zend MM disabled"); +} ?> --INI-- memory_limit=3M diff --git a/ext/standard/tests/strings/str_pad_variation5.phpt b/ext/standard/tests/strings/str_pad_variation5.phpt index 4b300c4717..cd979a1c8b 100644 --- a/ext/standard/tests/strings/str_pad_variation5.phpt +++ b/ext/standard/tests/strings/str_pad_variation5.phpt @@ -5,6 +5,9 @@ memory_limit=128M --SKIPIF-- --FILE-- Date: Sat, 11 Aug 2012 15:59:06 +0800 Subject: Fixed bug #62795 (Zip extension version not defined) --- .gitattributes | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitattributes b/.gitattributes index d53e569db1..862575bbb8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15,6 +15,7 @@ ext/dba/libflatfile/flatfile.c ident ext/dba/libcdb/cdb_make.c ident ext/dba/libcdb/cdb.c ident ext/filter/filter.c ident +ext/zip/php_zip.c ident README.input_filter ident run-tests.php ident sapi/nsapi/nsapi.c ident -- cgit v1.2.1 From 4970926e4543c15e16b0c047d85dddfb4c09b581 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sun, 12 Aug 2012 20:58:09 +0800 Subject: Fixed bug #62763 (register_shutdown_function and extending class) --- NEWS | 2 ++ Zend/tests/bug62763.phpt | 23 +++++++++++++++++++++++ ext/standard/basic_functions.c | 7 +++++-- 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 Zend/tests/bug62763.phpt diff --git a/NEWS b/NEWS index 70cbe8ed83..985e27456c 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,8 @@ PHP NEWS ?? ??? 2012, PHP 5.3.16 - Core: + . Fixed bug #62763 (register_shutdown_function and extending class). + (Laruence) . Fixed bug #62744 (dangling pointers made by zend_disable_class). (Laruence) . Fixed bug #62716 (munmap() is called with the incorrect length). (slangley@google.com) diff --git a/Zend/tests/bug62763.phpt b/Zend/tests/bug62763.phpt new file mode 100644 index 0000000000..50c27bdf35 --- /dev/null +++ b/Zend/tests/bug62763.phpt @@ -0,0 +1,23 @@ +--TEST-- +Bug #62763 (register_shutdown_function and extending class) +--FILE-- + +--EXPECT-- +test1::shutdowntest2::__destruct diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 99831a1f42..4858b6e375 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -5108,8 +5108,11 @@ void php_free_shutdown_functions(TSRMLS_D) /* {{{ */ zend_hash_destroy(BG(user_shutdown_function_names)); FREE_HASHTABLE(BG(user_shutdown_function_names)); BG(user_shutdown_function_names) = NULL; - } - zend_end_try(); + } zend_catch { + /* maybe shutdown method call exit, we just ignore it */ + FREE_HASHTABLE(BG(user_shutdown_function_names)); + BG(user_shutdown_function_names) = NULL; + } zend_end_try(); } /* }}} */ -- cgit v1.2.1 From 9bc1af1e5855c8cfc6886b5aaedbcb86a2ef42d7 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 13 Aug 2012 21:44:50 +0200 Subject: Rename mcrypt_cbf -> mcrypt_cfb Also fix ECB -> CFB in the initialization vector size call (not that it makes a difference, they have the same size). --- ext/mcrypt/tests/mcrypt_cbf.phpt | 23 ----------------------- ext/mcrypt/tests/mcrypt_cfb.phpt | 23 +++++++++++++++++++++++ 2 files changed, 23 insertions(+), 23 deletions(-) delete mode 100644 ext/mcrypt/tests/mcrypt_cbf.phpt create mode 100644 ext/mcrypt/tests/mcrypt_cfb.phpt diff --git a/ext/mcrypt/tests/mcrypt_cbf.phpt b/ext/mcrypt/tests/mcrypt_cbf.phpt deleted file mode 100644 index 8ec3cd7d3e..0000000000 --- a/ext/mcrypt/tests/mcrypt_cbf.phpt +++ /dev/null @@ -1,23 +0,0 @@ ---TEST-- -mcrypt_cbf ---SKIPIF-- - ---FILE-- - +--FILE-- + Date: Mon, 13 Aug 2012 21:46:15 +0200 Subject: Ask for less random data in mcrypt_create_iv Otherwise the RNG blocks and the test takes a lot of time to run (and occasionally fails). --- ext/mcrypt/tests/mcrypt_create_iv.phpt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ext/mcrypt/tests/mcrypt_create_iv.phpt b/ext/mcrypt/tests/mcrypt_create_iv.phpt index cf6456fef7..1aa48868b0 100644 --- a/ext/mcrypt/tests/mcrypt_create_iv.phpt +++ b/ext/mcrypt/tests/mcrypt_create_iv.phpt @@ -5,13 +5,13 @@ mcrypt_create_iv --FILE-- Date: Tue, 14 Aug 2012 17:33:38 +0200 Subject: Fix exif test failure There are two slightly different error messages for invalid pointers, so make the pattern slightly less strict to account for both. --- ext/exif/tests/bug60150.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/exif/tests/bug60150.phpt b/ext/exif/tests/bug60150.phpt index 63cf0a9daf..be01998fd8 100755 --- a/ext/exif/tests/bug60150.phpt +++ b/ext/exif/tests/bug60150.phpt @@ -12,7 +12,7 @@ var_dump(exif_read_data($infile)); ?> ===DONE=== --EXPECTF-- -Warning: exif_read_data(bug60150.jpg): Process tag(x9003=DateTimeOri): Illegal pointer offset(x%x + x%x = x%x > x%x) in %s on line %d +Warning: exif_read_data(bug60150.jpg): Process tag(x9003=DateTimeOri): Illegal pointer offset(%s) in %s on line %d Warning: exif_read_data(bug60150.jpg): Error reading from file: got=x%x(=%d) != itemlen-%d=x%x(=%d) in %s on line %d -- cgit v1.2.1 From a5a409ebff1037f4b00fdf6d46dd61c72cb6d315 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Wed, 15 Aug 2012 00:44:47 +0800 Subject: Fixed bug (segfault due to retval is not initialized) --- NEWS | 3 +++ ext/session/mod_user.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 985e27456c..c7afe53d94 100644 --- a/NEWS +++ b/NEWS @@ -26,6 +26,9 @@ PHP NEWS . Fixed bug #62715 (ReflectionParameter::isDefaultValueAvailable() wrong result). (Laruence) +- Session: + . Fixed bug (segfault due to retval is not initialized). (Laruence) + - SPL: . Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault). (Laruence, Gustavo) diff --git a/ext/session/mod_user.c b/ext/session/mod_user.c index 17af624998..c187e26818 100644 --- a/ext/session/mod_user.c +++ b/ext/session/mod_user.c @@ -63,7 +63,7 @@ static zval *ps_call_handler(zval *func, int argc, zval **argv TSRMLS_DC) } #define STDVARS1 \ - zval *retval; \ + zval *retval = NULL; \ int ret = FAILURE #define STDVARS \ -- cgit v1.2.1 From 8848778a59ddde777258261a3888baeb3a70dea1 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Wed, 15 Aug 2012 01:06:10 +0800 Subject: Merge fix e7535e06e63104ccc0c90c4425b6c2541aa3c939 to 5.3 thanks for reeze.xia@gmail.com notice this --- ext/standard/file.c | 1 + 1 file changed, 1 insertion(+) diff --git a/ext/standard/file.c b/ext/standard/file.c index 44d3a4e6a9..7147e98258 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -162,6 +162,7 @@ static void file_globals_ctor(php_file_globals *file_globals_p TSRMLS_DC) FG(pclose_ret) = 0; FG(user_stream_current_filename) = NULL; FG(def_chunk_size) = PHP_SOCK_CHUNK_SIZE; + FG(wrapper_errors) = NULL; } static void file_globals_dtor(php_file_globals *file_globals_p TSRMLS_DC) -- cgit v1.2.1 From 8c3bf96022ff6fb6be1e7bc87b794cab9e9bf90c Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Tue, 14 Aug 2012 11:41:36 -0700 Subject: Small test tidy up Make some test changes so the tests can be run with the CLI webserver --- ext/oci8/tests/details.inc | 53 ++++++++++++++++++++++-------------------- ext/oci8/tests/xmltype_01.phpt | 1 + 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/ext/oci8/tests/details.inc b/ext/oci8/tests/details.inc index 0f03c3a65f..9a86c46868 100644 --- a/ext/oci8/tests/details.inc +++ b/ext/oci8/tests/details.inc @@ -45,31 +45,34 @@ if (file_exists(dirname(__FILE__)."/details_local.inc")) { * Used for creating/dropping schema objects used by a test */ -function oci8_test_sql_execute($c, $stmtarray) -{ - foreach ($stmtarray as $stmt) { - $s = oci_parse($c, $stmt); - if (!$s) { - $m = oci_error($c); - echo $stmt . PHP_EOL . $m['message'] . PHP_EOL; - } - else { - $r = @oci_execute($s); - if (!$r) { - $m = oci_error($s); - if (!in_array($m['code'], array( // ignore expected errors - 942 // table or view does not exist - , 1918 // user does not exist - , 2024 // database link not found - , 2289 // sequence does not exist - , 4080 // trigger does not exist - , 38802 // edition does not exist - ))) { - echo $stmt . PHP_EOL . $m['message'] . PHP_EOL; - } - } - } - } +if (!function_exists('oci8_test_sql_execute')) { + function oci8_test_sql_execute($c, $stmtarray) + { + foreach ($stmtarray as $stmt) { + $s = oci_parse($c, $stmt); + if (!$s) { + $m = oci_error($c); + echo $stmt . PHP_EOL . $m['message'] . PHP_EOL; + } + else { + $r = @oci_execute($s); + if (!$r) { + $m = oci_error($s); + if (!in_array($m['code'], array( // ignore expected errors + 942 // table or view does not exist + , 1918 // user does not exist + , 2024 // database link not found + , 2289 // sequence does not exist + , 4080 // trigger does not exist + , 38802 // edition does not exist + ))) { + echo $stmt . PHP_EOL . $m['message'] . PHP_EOL; + } + } + } + } + } + } ?> diff --git a/ext/oci8/tests/xmltype_01.phpt b/ext/oci8/tests/xmltype_01.phpt index 21aca6cc12..ebbbb31fac 100644 --- a/ext/oci8/tests/xmltype_01.phpt +++ b/ext/oci8/tests/xmltype_01.phpt @@ -5,6 +5,7 @@ Basic XMLType test if (!extension_loaded("simplexml")) die("skip no simplexml extension"); $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs require(dirname(__FILE__).'/skipif.inc'); +?> --FILE-- Date: Tue, 14 Aug 2012 14:10:20 -0700 Subject: Fix skipifs Skipifs were referencing an unset variable --- ext/oci8/tests/bind_char_2_11gR1.phpt | 2 +- ext/oci8/tests/bind_char_3_11gR1.phpt | 2 +- ext/oci8/tests/bind_char_4_11gR1.phpt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ext/oci8/tests/bind_char_2_11gR1.phpt b/ext/oci8/tests/bind_char_2_11gR1.phpt index 8bb28733fe..edb2a12ff0 100644 --- a/ext/oci8/tests/bind_char_2_11gR1.phpt +++ b/ext/oci8/tests/bind_char_2_11gR1.phpt @@ -5,7 +5,7 @@ SELECT oci_bind_by_name with SQLT_AFC aka CHAR and dates if (!extension_loaded('oci8')) die ("skip no oci8 extension"); require(dirname(__FILE__)."/connect.inc"); // The bind buffer size edge cases seem to change each DB version. -if (preg_match('/Release 11\.1\./', $sv, $matches) !== 1) { +if (preg_match('/Release 11\.1\./', oci_server_version($c), $matches) !== 1) { if (preg_match('/Release 11\.2\.0\.3/', oci_server_version($c), $matches) !== 1) { die("skip expected output only valid when using Oracle 11gR1 or 11.2.0.3 databases"); } diff --git a/ext/oci8/tests/bind_char_3_11gR1.phpt b/ext/oci8/tests/bind_char_3_11gR1.phpt index 4c6241ccfd..fea77754d1 100644 --- a/ext/oci8/tests/bind_char_3_11gR1.phpt +++ b/ext/oci8/tests/bind_char_3_11gR1.phpt @@ -5,7 +5,7 @@ PL/SQL oci_bind_by_name with SQLT_AFC aka CHAR to CHAR parameter if (!extension_loaded('oci8')) die ("skip no oci8 extension"); require(dirname(__FILE__)."/connect.inc"); // The bind buffer size edge cases seem to change each DB version. -if (preg_match('/Release 11\.1\./', $sv, $matches) !== 1) { +if (preg_match('/Release 11\.1\./', oci_server_version($c), $matches) !== 1) { if (preg_match('/Release 11\.2\.0\.3/', oci_server_version($c), $matches) !== 1) { die("skip expected output only valid when using Oracle 11gR1 or 11.2.0.3 databases"); } diff --git a/ext/oci8/tests/bind_char_4_11gR1.phpt b/ext/oci8/tests/bind_char_4_11gR1.phpt index 14d5878856..2bc2f14246 100644 --- a/ext/oci8/tests/bind_char_4_11gR1.phpt +++ b/ext/oci8/tests/bind_char_4_11gR1.phpt @@ -5,7 +5,7 @@ PL/SQL oci_bind_by_name with SQLT_AFC aka CHAR to VARCHAR2 parameter if (!extension_loaded('oci8')) die ("skip no oci8 extension"); require(dirname(__FILE__)."/connect.inc"); // The bind buffer size edge cases seem to change each DB version. -if (preg_match('/Release 11\.1\./', $sv, $matches) !== 1) { +if (preg_match('/Release 11\.1\./', oci_server_version($c), $matches) !== 1) { if (preg_match('/Release 11\.2\.0\.3/', oci_server_version($c), $matches) !== 1) { die("skip expected output only valid when using Oracle 11gR1 or 11.2.0.3 databases"); } -- cgit v1.2.1 From 8649e4236b12ce9b90356a5804be96bd1f67bcd6 Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Thu, 16 Aug 2012 14:32:55 +0400 Subject: Fixed bug #62838 enchant_dict_quick_check() destroys zval, but fails to initialize it --- NEWS | 4 ++++ ext/enchant/enchant.c | 3 +-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index c7afe53d94..8da7256017 100644 --- a/NEWS +++ b/NEWS @@ -33,6 +33,10 @@ PHP NEWS . Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault). (Laruence, Gustavo) +- Enchant: + . Fixed bug #62838 (enchant_dict_quick_check() destroys zval, but fails to + initialize it). (Tony, Mateusz Goik). + 19 Jul 2012, PHP 5.3.15 - Zend Engine: diff --git a/ext/enchant/enchant.c b/ext/enchant/enchant.c index 0126d9ef4e..dcc39e267b 100755 --- a/ext/enchant/enchant.c +++ b/ext/enchant/enchant.c @@ -729,6 +729,7 @@ PHP_FUNCTION(enchant_dict_quick_check) if (sugg) { zval_dtor(sugg); + array_init(sugg); } PHP_ENCHANT_GET_DICT; @@ -742,8 +743,6 @@ PHP_FUNCTION(enchant_dict_quick_check) RETURN_FALSE; } - array_init(sugg); - suggs = enchant_dict_suggest(pdict->pdict, word, wordlen, &n_sugg_st); memcpy(&n_sugg, &n_sugg_st, sizeof(n_sugg)); if (suggs && n_sugg) { -- cgit v1.2.1 From 9cf0139460c7531ebe8fdd523ba6cf7067a7f282 Mon Sep 17 00:00:00 2001 From: Pierrick Charron Date: Thu, 16 Aug 2012 14:48:44 -0400 Subject: Fixed bug #62839 curl_copy_handle segfault with CURLOPT_FILE. The refcount was incremented before the assignement. --- NEWS | 1 + ext/curl/interface.c | 4 ++-- ext/curl/tests/bug62839.phpt | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 ext/curl/tests/bug62839.phpt diff --git a/NEWS b/NEWS index 8da7256017..7f5c48b2aa 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,7 @@ PHP NEWS with run-test.php). (Laruence) - CURL: + . Fixed bug #62839 (curl_copy_handle segfault with CURLOPT_FILE). (Pierrick) . Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false). (r.hampartsumyan@gmail.com, Laruence) diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 94be60fd5d..7b72873038 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -1610,9 +1610,9 @@ PHP_FUNCTION(curl_copy_handle) dupch->uses = 0; ch->uses++; if (ch->handlers->write->stream) { - Z_ADDREF_P(dupch->handlers->write->stream); - dupch->handlers->write->stream = ch->handlers->write->stream; + Z_ADDREF_P(ch->handlers->write->stream); } + dupch->handlers->write->stream = ch->handlers->write->stream; dupch->handlers->write->method = ch->handlers->write->method; dupch->handlers->write->type = ch->handlers->write->type; if (ch->handlers->read->stream) { diff --git a/ext/curl/tests/bug62839.phpt b/ext/curl/tests/bug62839.phpt new file mode 100644 index 0000000000..39e6fc9cbe --- /dev/null +++ b/ext/curl/tests/bug62839.phpt @@ -0,0 +1,18 @@ +--TEST-- +Bug #62839 (curl_copy_handle segfault with CURLOPT_FILE) +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +DONE! -- cgit v1.2.1 From 1a23d42909070269d53fc7500d683e88ba219cb3 Mon Sep 17 00:00:00 2001 From: Matt Ficken Date: Fri, 17 Aug 2012 20:29:08 +0200 Subject: More intl tests extracted from symfony --- ext/intl/symfony_format_type_double_intl1.phpt | 30 ++++++++++++++++ ext/intl/symfony_format_type_double_intl2.phpt | 30 ++++++++++++++++ ext/intl/symfony_format_type_double_intl3.phpt | 30 ++++++++++++++++ ext/intl/symfony_format_type_double_intl4.phpt | 30 ++++++++++++++++ ext/intl/symfony_format_type_int32_intl1.phpt | 49 ++++++++++++++++++++++++++ ext/intl/symfony_format_type_int32_intl2.phpt | 33 +++++++++++++++++ ext/intl/symfony_format_type_int32_intl3.phpt | 32 +++++++++++++++++ ext/intl/symfony_format_type_int32_intl4.phpt | 30 ++++++++++++++++ ext/intl/symfony_format_type_int32_intl5.phpt | 30 ++++++++++++++++ ext/intl/symfony_format_type_int32_intl6.phpt | 32 +++++++++++++++++ ext/intl/symfony_format_type_int32_intl7.phpt | 32 +++++++++++++++++ ext/intl/symfony_format_type_int64_intl1.phpt | 30 ++++++++++++++++ ext/intl/symfony_format_type_int64_intl2.phpt | 30 ++++++++++++++++ ext/intl/symfony_format_type_int64_intl3.phpt | 30 ++++++++++++++++ ext/intl/symfony_format_type_int64_intl4.phpt | 30 ++++++++++++++++ ext/intl/symfony_format_type_int64_intl5.phpt | 30 ++++++++++++++++ ext/intl/symfony_format_type_int64_intl6.phpt | 30 ++++++++++++++++ ext/intl/symfony_format_type_int64_intl7.phpt | 30 ++++++++++++++++ ext/intl/symfony_format_type_int64_intl8.phpt | 30 ++++++++++++++++ 19 files changed, 598 insertions(+) create mode 100644 ext/intl/symfony_format_type_double_intl1.phpt create mode 100644 ext/intl/symfony_format_type_double_intl2.phpt create mode 100644 ext/intl/symfony_format_type_double_intl3.phpt create mode 100644 ext/intl/symfony_format_type_double_intl4.phpt create mode 100644 ext/intl/symfony_format_type_int32_intl1.phpt create mode 100644 ext/intl/symfony_format_type_int32_intl2.phpt create mode 100644 ext/intl/symfony_format_type_int32_intl3.phpt create mode 100644 ext/intl/symfony_format_type_int32_intl4.phpt create mode 100644 ext/intl/symfony_format_type_int32_intl5.phpt create mode 100644 ext/intl/symfony_format_type_int32_intl6.phpt create mode 100644 ext/intl/symfony_format_type_int32_intl7.phpt create mode 100644 ext/intl/symfony_format_type_int64_intl1.phpt create mode 100644 ext/intl/symfony_format_type_int64_intl2.phpt create mode 100644 ext/intl/symfony_format_type_int64_intl3.phpt create mode 100644 ext/intl/symfony_format_type_int64_intl4.phpt create mode 100644 ext/intl/symfony_format_type_int64_intl5.phpt create mode 100644 ext/intl/symfony_format_type_int64_intl6.phpt create mode 100644 ext/intl/symfony_format_type_int64_intl7.phpt create mode 100644 ext/intl/symfony_format_type_int64_intl8.phpt diff --git a/ext/intl/symfony_format_type_double_intl1.phpt b/ext/intl/symfony_format_type_double_intl1.phpt new file mode 100644 index 0000000000..13a7ad761f --- /dev/null +++ b/ext/intl/symfony_format_type_double_intl1.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeDoubleIntl #1 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_DOUBLE); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + int(1) + [2]=> + string(1) "1" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_double_intl2.phpt b/ext/intl/symfony_format_type_double_intl2.phpt new file mode 100644 index 0000000000..6bff7cc355 --- /dev/null +++ b/ext/intl/symfony_format_type_double_intl2.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeDoubleIntl #2 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_DOUBLE); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(1.1) + [2]=> + string(3) "1.1" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_double_intl3.phpt b/ext/intl/symfony_format_type_double_intl3.phpt new file mode 100644 index 0000000000..3b0d576df7 --- /dev/null +++ b/ext/intl/symfony_format_type_double_intl3.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeDoubleIntl #3 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_DOUBLE); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + int(1) + [2]=> + string(7) "SFD1.00" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_double_intl4.phpt b/ext/intl/symfony_format_type_double_intl4.phpt new file mode 100644 index 0000000000..3476e10892 --- /dev/null +++ b/ext/intl/symfony_format_type_double_intl4.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeDoubleIntl #4 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_DOUBLE); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(1.1) + [2]=> + string(7) "SFD1.10" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl1.phpt b/ext/intl/symfony_format_type_int32_intl1.phpt new file mode 100644 index 0000000000..2867b35690 --- /dev/null +++ b/ext/intl/symfony_format_type_int32_intl1.phpt @@ -0,0 +1,49 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #1 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + int(1) + [2]=> + string(1) "1" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl2.phpt b/ext/intl/symfony_format_type_int32_intl2.phpt new file mode 100644 index 0000000000..6a65a0a809 --- /dev/null +++ b/ext/intl/symfony_format_type_int32_intl2.phpt @@ -0,0 +1,33 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #2 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(1.1) + [2]=> + string(1) "1" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl3.phpt b/ext/intl/symfony_format_type_int32_intl3.phpt new file mode 100644 index 0000000000..5e657db419 --- /dev/null +++ b/ext/intl/symfony_format_type_int32_intl3.phpt @@ -0,0 +1,32 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #3 +--SKIPIF-- + +--FILE-- +format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range.";}'); + +var_dump($unit_test_args); + +// execute the code from #testFormatTypeInt32Intl +$unit_test_args[0]->format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(4) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(2147483648) + [2]=> + string(14) "-2,147,483,648" + [3]=> + string(83) "->format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range." +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl4.phpt b/ext/intl/symfony_format_type_int32_intl4.phpt new file mode 100644 index 0000000000..54043d92e9 --- /dev/null +++ b/ext/intl/symfony_format_type_int32_intl4.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #4 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + int(1) + [2]=> + string(7) "SFD1.00" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl5.phpt b/ext/intl/symfony_format_type_int32_intl5.phpt new file mode 100644 index 0000000000..d5f78d7119 --- /dev/null +++ b/ext/intl/symfony_format_type_int32_intl5.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #5 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(1.1) + [2]=> + string(7) "SFD1.00" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl6.phpt b/ext/intl/symfony_format_type_int32_intl6.phpt new file mode 100644 index 0000000000..fa708799d1 --- /dev/null +++ b/ext/intl/symfony_format_type_int32_intl6.phpt @@ -0,0 +1,32 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #6 +--SKIPIF-- + +--FILE-- +format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range.";}'); + +var_dump($unit_test_args); + +// execute the code from #testFormatTypeInt32Intl +$unit_test_args[0]->format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(4) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(2147483648) + [2]=> + string(21) "(SFD2,147,483,648.00)" + [3]=> + string(83) "->format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range." +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl7.phpt b/ext/intl/symfony_format_type_int32_intl7.phpt new file mode 100644 index 0000000000..5bbe426677 --- /dev/null +++ b/ext/intl/symfony_format_type_int32_intl7.phpt @@ -0,0 +1,32 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #7 +--SKIPIF-- + +--FILE-- +format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range.";}'); + +var_dump($unit_test_args); + +// execute the code from #testFormatTypeInt32Intl +$unit_test_args[0]->format($unit_test_args[1], \NumberFormatter::TYPE_INT32); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(4) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(-2147483649) + [2]=> + string(19) "SFD2,147,483,647.00" + [3]=> + string(83) "->format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range." +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl1.phpt b/ext/intl/symfony_format_type_int64_intl1.phpt new file mode 100644 index 0000000000..01f5820911 --- /dev/null +++ b/ext/intl/symfony_format_type_int64_intl1.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #1 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + int(1) + [2]=> + string(1) "1" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl2.phpt b/ext/intl/symfony_format_type_int64_intl2.phpt new file mode 100644 index 0000000000..13d1cdaee7 --- /dev/null +++ b/ext/intl/symfony_format_type_int64_intl2.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #2 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(1.1) + [2]=> + string(1) "1" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl3.phpt b/ext/intl/symfony_format_type_int64_intl3.phpt new file mode 100644 index 0000000000..a7c80b34c3 --- /dev/null +++ b/ext/intl/symfony_format_type_int64_intl3.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #3 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(2147483648) + [2]=> + string(13) "2,147,483,648" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl4.phpt b/ext/intl/symfony_format_type_int64_intl4.phpt new file mode 100644 index 0000000000..f1a0801edf --- /dev/null +++ b/ext/intl/symfony_format_type_int64_intl4.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #4 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(-2147483649) + [2]=> + string(14) "-2,147,483,649" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl5.phpt b/ext/intl/symfony_format_type_int64_intl5.phpt new file mode 100644 index 0000000000..dad8735b89 --- /dev/null +++ b/ext/intl/symfony_format_type_int64_intl5.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #5 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + int(1) + [2]=> + string(7) "SFD1.00" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl6.phpt b/ext/intl/symfony_format_type_int64_intl6.phpt new file mode 100644 index 0000000000..f038cbd0c3 --- /dev/null +++ b/ext/intl/symfony_format_type_int64_intl6.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #6 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(1.1) + [2]=> + string(7) "SFD1.00" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl7.phpt b/ext/intl/symfony_format_type_int64_intl7.phpt new file mode 100644 index 0000000000..9c8853cafc --- /dev/null +++ b/ext/intl/symfony_format_type_int64_intl7.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #7 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(2147483648) + [2]=> + string(19) "SFD2,147,483,648.00" +} +== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl8.phpt b/ext/intl/symfony_format_type_int64_intl8.phpt new file mode 100644 index 0000000000..50524976ab --- /dev/null +++ b/ext/intl/symfony_format_type_int64_intl8.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #8 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(-2147483649) + [2]=> + string(21) "(SFD2,147,483,649.00)" +} +== didn't crash == -- cgit v1.2.1 From 46a3f257724df7b85cc8c3e6374c36ed9ee783b4 Mon Sep 17 00:00:00 2001 From: Reeze Xia Date: Sun, 19 Aug 2012 17:57:45 +0800 Subject: Fixed bug #62852 (Unserialize invalid DateTime causes crash) --- ext/date/php_date.c | 16 ++++++++++++---- ext/date/tests/bug62852.phpt | 15 +++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 ext/date/tests/bug62852.phpt diff --git a/ext/date/php_date.c b/ext/date/php_date.c index e8a457052e..d9e6a289b4 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -2544,6 +2544,9 @@ static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dat if (zend_hash_find(myht, "timezone_type", 14, (void**) &z_timezone_type) == SUCCESS) { convert_to_long(*z_timezone_type); if (zend_hash_find(myht, "timezone", 9, (void**) &z_timezone) == SUCCESS) { + zend_error_handling error_handling; + + zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC); convert_to_string(*z_timezone); switch (Z_LVAL_PP(z_timezone_type)) { @@ -2551,9 +2554,9 @@ static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dat case TIMELIB_ZONETYPE_ABBR: { char *tmp = emalloc(Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 2); snprintf(tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 2, "%s %s", Z_STRVAL_PP(z_date), Z_STRVAL_PP(z_timezone)); - php_date_initialize(*dateobj, tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 1, NULL, NULL, 0 TSRMLS_CC); + php_date_initialize(*dateobj, tmp, Z_STRLEN_PP(z_date) + Z_STRLEN_PP(z_timezone) + 1, NULL, NULL, 1 TSRMLS_CC); efree(tmp); - return 1; + break; } case TIMELIB_ZONETYPE_ID: @@ -2567,10 +2570,15 @@ static int php_date_initialize_from_hash(zval **return_value, php_date_obj **dat tzobj->tzi.tz = tzi; tzobj->initialized = 1; - php_date_initialize(*dateobj, Z_STRVAL_PP(z_date), Z_STRLEN_PP(z_date), NULL, tmp_obj, 0 TSRMLS_CC); + php_date_initialize(*dateobj, Z_STRVAL_PP(z_date), Z_STRLEN_PP(z_date), NULL, tmp_obj, 1 TSRMLS_CC); zval_ptr_dtor(&tmp_obj); - return 1; + break; + default: + zend_restore_error_handling(&error_handling TSRMLS_CC); + return 0; } + zend_restore_error_handling(&error_handling TSRMLS_CC); + return 1; } } } diff --git a/ext/date/tests/bug62852.phpt b/ext/date/tests/bug62852.phpt new file mode 100644 index 0000000000..6426a80fb8 --- /dev/null +++ b/ext/date/tests/bug62852.phpt @@ -0,0 +1,15 @@ +--TEST-- +Bug #62852 (Unserialize invalid DateTime causes crash) +--INI-- +date.timezone=GMT +--FILE-- +getMessage()); +} +?> +--EXPECTF-- +string(%d) "DateTime::__wakeup(): Failed to parse time string (%s) at position 12 (0): Double time specification" -- cgit v1.2.1 From 8b87c6df8408b95a1bfae4a82958a48e3a220b5a Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sun, 19 Aug 2012 18:33:06 +0800 Subject: Update NEWS --- NEWS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NEWS b/NEWS index 7f5c48b2aa..b796117fdd 100644 --- a/NEWS +++ b/NEWS @@ -18,6 +18,8 @@ PHP NEWS (r.hampartsumyan@gmail.com, Laruence) - DateTime: + . Fixed bug #62852 (Unserialize invalid DateTime causes crash). + (reeze.xia@gmail.com) . Fixed bug #62500 (Segfault in DateInterval class when extended). (Laruence) - PDO: -- cgit v1.2.1 From dc1138b102b8fde7a119cb8f7ceb30b26dfdf6b3 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 19 Aug 2012 12:13:48 -0300 Subject: - Value stored to var is never read --- ext/dom/element.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/dom/element.c b/ext/dom/element.c index 979274176b..33002fa1ee 100644 --- a/ext/dom/element.c +++ b/ext/dom/element.c @@ -832,7 +832,7 @@ PHP_FUNCTION(dom_element_set_attribute_ns) } if (errorcode == 0 && is_xmlns == 0) { - attr = xmlSetNsProp(elemp, nsptr, (xmlChar *)localname, (xmlChar *)value); + xmlSetNsProp(elemp, nsptr, (xmlChar *)localname, (xmlChar *)value); } } else { name_valid = xmlValidateName((xmlChar *) localname, 0); @@ -844,7 +844,7 @@ PHP_FUNCTION(dom_element_set_attribute_ns) if (attr != NULL && attr->type != XML_ATTRIBUTE_DECL) { node_list_unlink(attr->children TSRMLS_CC); } - attr = xmlSetProp(elemp, (xmlChar *)localname, (xmlChar *)value); + xmlSetProp(elemp, (xmlChar *)localname, (xmlChar *)value); } } } -- cgit v1.2.1 From 001966c754f67f36871507e70e2ec1af5a9816bd Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 19 Aug 2012 12:44:44 -0300 Subject: - Value stored to var is never used --- Zend/zend_API.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 56182138a8..70cf0c7af8 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2445,11 +2445,9 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca /* Skip leading \ */ if (Z_STRVAL_P(callable)[0] == '\\') { mlen = Z_STRLEN_P(callable) - 1; - mname = Z_STRVAL_P(callable) + 1; lmname = zend_str_tolower_dup(Z_STRVAL_P(callable) + 1, mlen); } else { mlen = Z_STRLEN_P(callable); - mname = Z_STRVAL_P(callable); lmname = zend_str_tolower_dup(Z_STRVAL_P(callable), mlen); } /* Check if function with given name exists. -- cgit v1.2.1 From 6cd0e446dd93b5232b49c6248102b77b17865904 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 19 Aug 2012 12:55:38 -0300 Subject: - Value stored to var is never used --- ext/spl/spl_directory.c | 1 - 1 file changed, 1 deletion(-) diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c index 4f8edb5211..8c1810ef71 100755 --- a/ext/spl/spl_directory.c +++ b/ext/spl/spl_directory.c @@ -434,7 +434,6 @@ static spl_filesystem_object * spl_filesystem_object_create_info(spl_filesystem_ if (file_path && !use_copy) { efree(file_path); } - use_copy = 1; file_path_len = 1; file_path = "/"; #endif -- cgit v1.2.1 From 50ab6c63a700155b8d6be361eac29eae2bc6d869 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 19 Aug 2012 14:34:38 -0300 Subject: - Value stored to var is never used --- ext/standard/string.c | 1 - 1 file changed, 1 deletion(-) diff --git a/ext/standard/string.c b/ext/standard/string.c index 1a7bd1e0b4..68bf3fecfc 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -3902,7 +3902,6 @@ static void php_hebrev(INTERNAL_FUNCTION_PARAMETERS, int convert_newlines) new_char_count--; } if (new_char_count > 0) { - char_count=new_char_count; begin=new_begin; } } -- cgit v1.2.1 From 3dd256a67b61a995b580cce762a46be689ea34b1 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 19 Aug 2012 14:50:49 -0300 Subject: - Value stored to var is never used --- ext/standard/url.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ext/standard/url.c b/ext/standard/url.c index 18c300c51c..2525afb905 100644 --- a/ext/standard/url.c +++ b/ext/standard/url.c @@ -220,14 +220,14 @@ PHPAPI php_url *php_url_parse_ex(char const *str, int length) if (query && fragment) { if (query > fragment) { - p = e = fragment; + e = fragment; } else { - p = e = query; + e = query; } } else if (query) { - p = e = query; + e = query; } else if (fragment) { - p = e = fragment; + e = fragment; } } else { e = p; -- cgit v1.2.1 From f4054afe40bd2b1876832b01f6cbae8f8236d2aa Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 19 Aug 2012 15:09:14 -0300 Subject: - Value stored to var is never used --- ext/phar/util.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/ext/phar/util.c b/ext/phar/util.c index 9797ec8250..cc4457493b 100644 --- a/ext/phar/util.c +++ b/ext/phar/util.c @@ -211,8 +211,6 @@ int phar_mount_entry(phar_archive_data *phar, char *filename, int filename_len, return FAILURE; } #endif - - filename_len = strlen(entry.tmp); filename = entry.tmp; /* only check openbasedir for files, not for phar streams */ -- cgit v1.2.1 From b9a050100ce430db758ff791914e88478b2814b8 Mon Sep 17 00:00:00 2001 From: Popa Adrian Marius Date: Mon, 20 Aug 2012 16:56:37 +0300 Subject: skip test for bug 43130 on firebird , not relevant --- ext/pdo/tests/bug_43130.phpt | 1 + 1 file changed, 1 insertion(+) diff --git a/ext/pdo/tests/bug_43130.phpt b/ext/pdo/tests/bug_43130.phpt index a35138a07f..70f8887111 100644 --- a/ext/pdo/tests/bug_43130.phpt +++ b/ext/pdo/tests/bug_43130.phpt @@ -8,6 +8,7 @@ if (false == $dir) die('skip no driver'); if (!strncasecmp(getenv('PDOTEST_DSN'), 'sqlite', strlen('sqlite'))) die('skip not relevant for sqlite driver'); if (!strncasecmp(getenv('PDOTEST_DSN'), 'pgsql', strlen('pgsql'))) die('skip not relevant for pgsql driver'); if (!strncasecmp(getenv('PDOTEST_DSN'), 'oci', strlen('oci'))) die('skip not relevant for oci driver - Hyphen is not legal for bind names in Oracle DB'); +if (!strncasecmp(getenv('PDOTEST_DSN'), 'firebird', strlen('firebird'))) die('skip not relevant for firebird driver'); require_once $dir . 'pdo_test.inc'; PDOTest::skip(); ?> -- cgit v1.2.1 From 0cdc1f5626bd400278aa193867e1fd4fe3f771d4 Mon Sep 17 00:00:00 2001 From: Reeze Xia Date: Tue, 21 Aug 2012 14:32:39 +0800 Subject: Move test files to tests dir There are 7 files duplicated, so those files was deleted --- ext/intl/symfony_format_type_double_intl1.phpt | 30 ------------- ext/intl/symfony_format_type_double_intl2.phpt | 30 ------------- ext/intl/symfony_format_type_double_intl3.phpt | 30 ------------- ext/intl/symfony_format_type_double_intl4.phpt | 30 ------------- ext/intl/symfony_format_type_int32_intl1.phpt | 49 ---------------------- ext/intl/symfony_format_type_int32_intl2.phpt | 33 --------------- ext/intl/symfony_format_type_int32_intl3.phpt | 32 -------------- ext/intl/symfony_format_type_int32_intl4.phpt | 30 ------------- ext/intl/symfony_format_type_int32_intl5.phpt | 30 ------------- ext/intl/symfony_format_type_int32_intl6.phpt | 32 -------------- ext/intl/symfony_format_type_int32_intl7.phpt | 32 -------------- ext/intl/symfony_format_type_int64_intl1.phpt | 30 ------------- ext/intl/symfony_format_type_int64_intl2.phpt | 30 ------------- ext/intl/symfony_format_type_int64_intl3.phpt | 30 ------------- ext/intl/symfony_format_type_int64_intl4.phpt | 30 ------------- ext/intl/symfony_format_type_int64_intl5.phpt | 30 ------------- ext/intl/symfony_format_type_int64_intl6.phpt | 30 ------------- ext/intl/symfony_format_type_int64_intl7.phpt | 30 ------------- ext/intl/symfony_format_type_int64_intl8.phpt | 30 ------------- .../tests/symfony_format_type_double_intl1.phpt | 30 +++++++++++++ .../tests/symfony_format_type_double_intl2.phpt | 30 +++++++++++++ .../tests/symfony_format_type_double_intl3.phpt | 30 +++++++++++++ .../tests/symfony_format_type_double_intl4.phpt | 30 +++++++++++++ .../tests/symfony_format_type_int64_intl1.phpt | 30 +++++++++++++ .../tests/symfony_format_type_int64_intl2.phpt | 30 +++++++++++++ .../tests/symfony_format_type_int64_intl3.phpt | 30 +++++++++++++ .../tests/symfony_format_type_int64_intl4.phpt | 30 +++++++++++++ .../tests/symfony_format_type_int64_intl5.phpt | 30 +++++++++++++ .../tests/symfony_format_type_int64_intl6.phpt | 30 +++++++++++++ .../tests/symfony_format_type_int64_intl7.phpt | 30 +++++++++++++ .../tests/symfony_format_type_int64_intl8.phpt | 30 +++++++++++++ 31 files changed, 360 insertions(+), 598 deletions(-) delete mode 100644 ext/intl/symfony_format_type_double_intl1.phpt delete mode 100644 ext/intl/symfony_format_type_double_intl2.phpt delete mode 100644 ext/intl/symfony_format_type_double_intl3.phpt delete mode 100644 ext/intl/symfony_format_type_double_intl4.phpt delete mode 100644 ext/intl/symfony_format_type_int32_intl1.phpt delete mode 100644 ext/intl/symfony_format_type_int32_intl2.phpt delete mode 100644 ext/intl/symfony_format_type_int32_intl3.phpt delete mode 100644 ext/intl/symfony_format_type_int32_intl4.phpt delete mode 100644 ext/intl/symfony_format_type_int32_intl5.phpt delete mode 100644 ext/intl/symfony_format_type_int32_intl6.phpt delete mode 100644 ext/intl/symfony_format_type_int32_intl7.phpt delete mode 100644 ext/intl/symfony_format_type_int64_intl1.phpt delete mode 100644 ext/intl/symfony_format_type_int64_intl2.phpt delete mode 100644 ext/intl/symfony_format_type_int64_intl3.phpt delete mode 100644 ext/intl/symfony_format_type_int64_intl4.phpt delete mode 100644 ext/intl/symfony_format_type_int64_intl5.phpt delete mode 100644 ext/intl/symfony_format_type_int64_intl6.phpt delete mode 100644 ext/intl/symfony_format_type_int64_intl7.phpt delete mode 100644 ext/intl/symfony_format_type_int64_intl8.phpt create mode 100644 ext/intl/tests/symfony_format_type_double_intl1.phpt create mode 100644 ext/intl/tests/symfony_format_type_double_intl2.phpt create mode 100644 ext/intl/tests/symfony_format_type_double_intl3.phpt create mode 100644 ext/intl/tests/symfony_format_type_double_intl4.phpt create mode 100644 ext/intl/tests/symfony_format_type_int64_intl1.phpt create mode 100644 ext/intl/tests/symfony_format_type_int64_intl2.phpt create mode 100644 ext/intl/tests/symfony_format_type_int64_intl3.phpt create mode 100644 ext/intl/tests/symfony_format_type_int64_intl4.phpt create mode 100644 ext/intl/tests/symfony_format_type_int64_intl5.phpt create mode 100644 ext/intl/tests/symfony_format_type_int64_intl6.phpt create mode 100644 ext/intl/tests/symfony_format_type_int64_intl7.phpt create mode 100644 ext/intl/tests/symfony_format_type_int64_intl8.phpt diff --git a/ext/intl/symfony_format_type_double_intl1.phpt b/ext/intl/symfony_format_type_double_intl1.phpt deleted file mode 100644 index 13a7ad761f..0000000000 --- a/ext/intl/symfony_format_type_double_intl1.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeDoubleIntl #1 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_DOUBLE); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - int(1) - [2]=> - string(1) "1" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_double_intl2.phpt b/ext/intl/symfony_format_type_double_intl2.phpt deleted file mode 100644 index 6bff7cc355..0000000000 --- a/ext/intl/symfony_format_type_double_intl2.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeDoubleIntl #2 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_DOUBLE); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - float(1.1) - [2]=> - string(3) "1.1" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_double_intl3.phpt b/ext/intl/symfony_format_type_double_intl3.phpt deleted file mode 100644 index 3b0d576df7..0000000000 --- a/ext/intl/symfony_format_type_double_intl3.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeDoubleIntl #3 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_DOUBLE); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - int(1) - [2]=> - string(7) "SFD1.00" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_double_intl4.phpt b/ext/intl/symfony_format_type_double_intl4.phpt deleted file mode 100644 index 3476e10892..0000000000 --- a/ext/intl/symfony_format_type_double_intl4.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeDoubleIntl #4 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_DOUBLE); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - float(1.1) - [2]=> - string(7) "SFD1.10" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl1.phpt b/ext/intl/symfony_format_type_int32_intl1.phpt deleted file mode 100644 index 2867b35690..0000000000 --- a/ext/intl/symfony_format_type_int32_intl1.phpt +++ /dev/null @@ -1,49 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #1 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_INT32); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - int(1) - [2]=> - string(1) "1" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl2.phpt b/ext/intl/symfony_format_type_int32_intl2.phpt deleted file mode 100644 index 6a65a0a809..0000000000 --- a/ext/intl/symfony_format_type_int32_intl2.phpt +++ /dev/null @@ -1,33 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #2 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_INT32); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - float(1.1) - [2]=> - string(1) "1" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl3.phpt b/ext/intl/symfony_format_type_int32_intl3.phpt deleted file mode 100644 index 5e657db419..0000000000 --- a/ext/intl/symfony_format_type_int32_intl3.phpt +++ /dev/null @@ -1,32 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #3 ---SKIPIF-- - ---FILE-- -format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range.";}'); - -var_dump($unit_test_args); - -// execute the code from #testFormatTypeInt32Intl -$unit_test_args[0]->format($unit_test_args[1], \NumberFormatter::TYPE_INT32); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(4) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - float(2147483648) - [2]=> - string(14) "-2,147,483,648" - [3]=> - string(83) "->format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range." -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl4.phpt b/ext/intl/symfony_format_type_int32_intl4.phpt deleted file mode 100644 index 54043d92e9..0000000000 --- a/ext/intl/symfony_format_type_int32_intl4.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #4 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_INT32); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - int(1) - [2]=> - string(7) "SFD1.00" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl5.phpt b/ext/intl/symfony_format_type_int32_intl5.phpt deleted file mode 100644 index d5f78d7119..0000000000 --- a/ext/intl/symfony_format_type_int32_intl5.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #5 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_INT32); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - float(1.1) - [2]=> - string(7) "SFD1.00" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl6.phpt b/ext/intl/symfony_format_type_int32_intl6.phpt deleted file mode 100644 index fa708799d1..0000000000 --- a/ext/intl/symfony_format_type_int32_intl6.phpt +++ /dev/null @@ -1,32 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #6 ---SKIPIF-- - ---FILE-- -format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range.";}'); - -var_dump($unit_test_args); - -// execute the code from #testFormatTypeInt32Intl -$unit_test_args[0]->format($unit_test_args[1], \NumberFormatter::TYPE_INT32); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(4) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - float(2147483648) - [2]=> - string(21) "(SFD2,147,483,648.00)" - [3]=> - string(83) "->format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range." -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int32_intl7.phpt b/ext/intl/symfony_format_type_int32_intl7.phpt deleted file mode 100644 index 5bbe426677..0000000000 --- a/ext/intl/symfony_format_type_int32_intl7.phpt +++ /dev/null @@ -1,32 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt32Intl #7 ---SKIPIF-- - ---FILE-- -format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range.";}'); - -var_dump($unit_test_args); - -// execute the code from #testFormatTypeInt32Intl -$unit_test_args[0]->format($unit_test_args[1], \NumberFormatter::TYPE_INT32); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(4) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - float(-2147483649) - [2]=> - string(19) "SFD2,147,483,647.00" - [3]=> - string(83) "->format() TYPE_INT32 formats inconsistently an integer if out of the 32 bit range." -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl1.phpt b/ext/intl/symfony_format_type_int64_intl1.phpt deleted file mode 100644 index 01f5820911..0000000000 --- a/ext/intl/symfony_format_type_int64_intl1.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #1 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_INT64); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - int(1) - [2]=> - string(1) "1" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl2.phpt b/ext/intl/symfony_format_type_int64_intl2.phpt deleted file mode 100644 index 13d1cdaee7..0000000000 --- a/ext/intl/symfony_format_type_int64_intl2.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #2 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_INT64); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - float(1.1) - [2]=> - string(1) "1" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl3.phpt b/ext/intl/symfony_format_type_int64_intl3.phpt deleted file mode 100644 index a7c80b34c3..0000000000 --- a/ext/intl/symfony_format_type_int64_intl3.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #3 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_INT64); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - float(2147483648) - [2]=> - string(13) "2,147,483,648" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl4.phpt b/ext/intl/symfony_format_type_int64_intl4.phpt deleted file mode 100644 index f1a0801edf..0000000000 --- a/ext/intl/symfony_format_type_int64_intl4.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #4 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_INT64); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - float(-2147483649) - [2]=> - string(14) "-2,147,483,649" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl5.phpt b/ext/intl/symfony_format_type_int64_intl5.phpt deleted file mode 100644 index dad8735b89..0000000000 --- a/ext/intl/symfony_format_type_int64_intl5.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #5 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_INT64); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - int(1) - [2]=> - string(7) "SFD1.00" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl6.phpt b/ext/intl/symfony_format_type_int64_intl6.phpt deleted file mode 100644 index f038cbd0c3..0000000000 --- a/ext/intl/symfony_format_type_int64_intl6.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #6 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_INT64); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - float(1.1) - [2]=> - string(7) "SFD1.00" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl7.phpt b/ext/intl/symfony_format_type_int64_intl7.phpt deleted file mode 100644 index 9c8853cafc..0000000000 --- a/ext/intl/symfony_format_type_int64_intl7.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #7 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_INT64); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - float(2147483648) - [2]=> - string(19) "SFD2,147,483,648.00" -} -== didn't crash == diff --git a/ext/intl/symfony_format_type_int64_intl8.phpt b/ext/intl/symfony_format_type_int64_intl8.phpt deleted file mode 100644 index 50524976ab..0000000000 --- a/ext/intl/symfony_format_type_int64_intl8.phpt +++ /dev/null @@ -1,30 +0,0 @@ ---TEST-- -Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #8 ---SKIPIF-- - ---FILE-- -format($unit_test_args[1], \NumberFormatter::TYPE_INT64); - -echo "== didn't crash ==".PHP_EOL; - -?> ---EXPECT-- -array(3) { - [0]=> - object(NumberFormatter)#1 (0) { - } - [1]=> - float(-2147483649) - [2]=> - string(21) "(SFD2,147,483,649.00)" -} -== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_double_intl1.phpt b/ext/intl/tests/symfony_format_type_double_intl1.phpt new file mode 100644 index 0000000000..13a7ad761f --- /dev/null +++ b/ext/intl/tests/symfony_format_type_double_intl1.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeDoubleIntl #1 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_DOUBLE); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + int(1) + [2]=> + string(1) "1" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_double_intl2.phpt b/ext/intl/tests/symfony_format_type_double_intl2.phpt new file mode 100644 index 0000000000..6bff7cc355 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_double_intl2.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeDoubleIntl #2 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_DOUBLE); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(1.1) + [2]=> + string(3) "1.1" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_double_intl3.phpt b/ext/intl/tests/symfony_format_type_double_intl3.phpt new file mode 100644 index 0000000000..3b0d576df7 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_double_intl3.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeDoubleIntl #3 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_DOUBLE); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + int(1) + [2]=> + string(7) "SFD1.00" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_double_intl4.phpt b/ext/intl/tests/symfony_format_type_double_intl4.phpt new file mode 100644 index 0000000000..3476e10892 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_double_intl4.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeDoubleIntl #4 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_DOUBLE); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(1.1) + [2]=> + string(7) "SFD1.10" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int64_intl1.phpt b/ext/intl/tests/symfony_format_type_int64_intl1.phpt new file mode 100644 index 0000000000..01f5820911 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int64_intl1.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #1 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + int(1) + [2]=> + string(1) "1" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int64_intl2.phpt b/ext/intl/tests/symfony_format_type_int64_intl2.phpt new file mode 100644 index 0000000000..13d1cdaee7 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int64_intl2.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #2 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(1.1) + [2]=> + string(1) "1" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int64_intl3.phpt b/ext/intl/tests/symfony_format_type_int64_intl3.phpt new file mode 100644 index 0000000000..a7c80b34c3 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int64_intl3.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #3 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(2147483648) + [2]=> + string(13) "2,147,483,648" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int64_intl4.phpt b/ext/intl/tests/symfony_format_type_int64_intl4.phpt new file mode 100644 index 0000000000..f1a0801edf --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int64_intl4.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #4 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(-2147483649) + [2]=> + string(14) "-2,147,483,649" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int64_intl5.phpt b/ext/intl/tests/symfony_format_type_int64_intl5.phpt new file mode 100644 index 0000000000..dad8735b89 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int64_intl5.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #5 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + int(1) + [2]=> + string(7) "SFD1.00" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int64_intl6.phpt b/ext/intl/tests/symfony_format_type_int64_intl6.phpt new file mode 100644 index 0000000000..f038cbd0c3 --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int64_intl6.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #6 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(1.1) + [2]=> + string(7) "SFD1.00" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int64_intl7.phpt b/ext/intl/tests/symfony_format_type_int64_intl7.phpt new file mode 100644 index 0000000000..9c8853cafc --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int64_intl7.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #7 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(2147483648) + [2]=> + string(19) "SFD2,147,483,648.00" +} +== didn't crash == diff --git a/ext/intl/tests/symfony_format_type_int64_intl8.phpt b/ext/intl/tests/symfony_format_type_int64_intl8.phpt new file mode 100644 index 0000000000..50524976ab --- /dev/null +++ b/ext/intl/tests/symfony_format_type_int64_intl8.phpt @@ -0,0 +1,30 @@ +--TEST-- +Symfony StubNumberFormatterTest#testFormatTypeInt64Intl #8 +--SKIPIF-- + +--FILE-- +format($unit_test_args[1], \NumberFormatter::TYPE_INT64); + +echo "== didn't crash ==".PHP_EOL; + +?> +--EXPECT-- +array(3) { + [0]=> + object(NumberFormatter)#1 (0) { + } + [1]=> + float(-2147483649) + [2]=> + string(21) "(SFD2,147,483,649.00)" +} +== didn't crash == -- cgit v1.2.1 From 92153dcfe3f7643526572439622408d94fd4aa14 Mon Sep 17 00:00:00 2001 From: Anatoliy Belsky Date: Tue, 21 Aug 2012 13:22:00 +0200 Subject: Added test for bug #51353. It'll be skipped by default and must be activated manually. --- ext/zip/tests/bug51353.phpt | 54 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 ext/zip/tests/bug51353.phpt diff --git a/ext/zip/tests/bug51353.phpt b/ext/zip/tests/bug51353.phpt new file mode 100644 index 0000000000..560945f9dd --- /dev/null +++ b/ext/zip/tests/bug51353.phpt @@ -0,0 +1,54 @@ +--TEST-- +Bug #51353 ZIP64 problem, archive with 100000 items +--SKIPIF-- +12M big, + or create it dynamically. */ +$zip = new ZipArchive; +$r = $zip->open("$base_path/51353.zip", ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE); +if ($r) { + for ($i = 0; $i < 100000; $i++) { + $zip->addFromString("$i.txt", '1'); + } + $zip->close(); +} else { + die("failed"); +} + +$zip = new ZipArchive; +$r = $zip->open("$base_path/51353.zip"); +if ($r) { + $zip->extractTo("$base_path/51353_unpack"); + $zip->close(); + + $a = glob("$base_path/51353_unpack/*.txt"); + echo count($a) . "\n"; +} else { + die("failed"); +} + +echo "OK"; +--CLEAN-- + Date: Tue, 21 Aug 2012 22:11:11 +0800 Subject: skip test properly --- ext/mysql/tests/mysql_query_load_data_openbasedir.phpt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ext/mysql/tests/mysql_query_load_data_openbasedir.phpt b/ext/mysql/tests/mysql_query_load_data_openbasedir.phpt index c2685a572e..474065faf1 100644 --- a/ext/mysql/tests/mysql_query_load_data_openbasedir.phpt +++ b/ext/mysql/tests/mysql_query_load_data_openbasedir.phpt @@ -2,13 +2,12 @@ LOAD DATA INFILE - open_basedir --SKIPIF-- Date: Tue, 21 Aug 2012 20:15:34 -0300 Subject: - Removed PHP 6 checks --- ext/phar/phar.c | 5 +- ext/phar/phar_object.c | 137 +++---------------------------------------------- ext/phar/stream.c | 13 +---- ext/phar/tar.c | 5 +- ext/phar/zip.c | 16 ------ 5 files changed, 9 insertions(+), 167 deletions(-) diff --git a/ext/phar/phar.c b/ext/phar/phar.c index f7d08da4ab..7b7d559811 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -2653,11 +2653,8 @@ int phar_flush(phar_archive_data *phar, char *user_stub, long len, int convert, len = -len; } user_stub = 0; -#if PHP_MAJOR_VERSION >= 6 - if (!(len = php_stream_copy_to_mem(stubfile, (void **) &user_stub, len, 0)) || !user_stub) { -#else + if (!(len = php_stream_copy_to_mem(stubfile, &user_stub, len, 0)) || !user_stub) { -#endif if (closeoldfile) { php_stream_close(oldfile); } diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c index 0335615ea4..d19f30c612 100644 --- a/ext/phar/phar_object.c +++ b/ext/phar/phar_object.c @@ -58,9 +58,6 @@ static int phar_file_type(HashTable *mimes, char *file, char **mime_type TSRMLS_ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char *basename, int request_uri_len TSRMLS_DC) /* {{{ */ { -#if PHP_MAJOR_VERSION >= 6 - int is_unicode = 0; -#endif HashTable *_SERVER; zval **stuff; char *path_info; @@ -76,18 +73,7 @@ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char _SERVER = Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_SERVER]); /* PATH_INFO and PATH_TRANSLATED should always be munged */ -#if PHP_MAJOR_VERSION >= 6 - if (phar_find_key(_SERVER, "PATH_INFO", sizeof("PATH_INFO"), (void **) &stuff TSRMLS_CC)) { - if (Z_TYPE_PP(stuff) == IS_UNICODE) { - is_unicode = 1; - zval_unicode_to_string(*stuff TSRMLS_CC); - } else { - is_unicode = 0; - } -#else if (SUCCESS == zend_hash_find(_SERVER, "PATH_INFO", sizeof("PATH_INFO"), (void **) &stuff)) { -#endif - path_info = Z_STRVAL_PP(stuff); code = Z_STRLEN_PP(stuff); @@ -96,38 +82,19 @@ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char MAKE_STD_ZVAL(temp); ZVAL_STRINGL(temp, path_info, code, 0); -#if PHP_MAJOR_VERSION >= 6 - if (is_unicode) { - zval_string_to_unicode(*stuff TSRMLS_CC); - } -#endif + zend_hash_update(_SERVER, "PHAR_PATH_INFO", sizeof("PHAR_PATH_INFO"), &temp, sizeof(zval **), NULL); } } -#if PHP_MAJOR_VERSION >= 6 - if (phar_find_key(_SERVER, "PATH_TRANSLATED", sizeof("PATH_TRANSLATED"), (void **) &stuff TSRMLS_CC)) { - if (Z_TYPE_PP(stuff) == IS_UNICODE) { - is_unicode = 1; - zval_unicode_to_string(*stuff TSRMLS_CC); - } else { - is_unicode = 0; - } -#else if (SUCCESS == zend_hash_find(_SERVER, "PATH_TRANSLATED", sizeof("PATH_TRANSLATED"), (void **) &stuff)) { -#endif - path_info = Z_STRVAL_PP(stuff); code = Z_STRLEN_PP(stuff); Z_STRLEN_PP(stuff) = spprintf(&(Z_STRVAL_PP(stuff)), 4096, "phar://%s%s", fname, entry); MAKE_STD_ZVAL(temp); ZVAL_STRINGL(temp, path_info, code, 0); -#if PHP_MAJOR_VERSION >= 6 - if (is_unicode) { - zval_string_to_unicode(*stuff TSRMLS_CC); - } -#endif + zend_hash_update(_SERVER, "PHAR_PATH_TRANSLATED", sizeof("PHAR_PATH_TRANSLATED"), (void *) &temp, sizeof(zval **), NULL); } @@ -136,18 +103,7 @@ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char } if (PHAR_GLOBALS->phar_SERVER_mung_list & PHAR_MUNG_REQUEST_URI) { -#if PHP_MAJOR_VERSION >= 6 - if (phar_find_key(_SERVER, "REQUEST_URI", sizeof("REQUEST_URI"), (void **) &stuff TSRMLS_CC)) { - if (Z_TYPE_PP(stuff) == IS_UNICODE) { - is_unicode = 1; - zval_unicode_to_string(*stuff TSRMLS_CC); - } else { - is_unicode = 0; - } -#else if (SUCCESS == zend_hash_find(_SERVER, "REQUEST_URI", sizeof("REQUEST_URI"), (void **) &stuff)) { -#endif - path_info = Z_STRVAL_PP(stuff); code = Z_STRLEN_PP(stuff); @@ -156,29 +112,14 @@ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char MAKE_STD_ZVAL(temp); ZVAL_STRINGL(temp, path_info, code, 0); -#if PHP_MAJOR_VERSION >= 6 - if (is_unicode) { - zval_string_to_unicode(*stuff TSRMLS_CC); - } -#endif + zend_hash_update(_SERVER, "PHAR_REQUEST_URI", sizeof("PHAR_REQUEST_URI"), (void *) &temp, sizeof(zval **), NULL); } } } if (PHAR_GLOBALS->phar_SERVER_mung_list & PHAR_MUNG_PHP_SELF) { -#if PHP_MAJOR_VERSION >= 6 - if (phar_find_key(_SERVER, "PHP_SELF", sizeof("PHP_SELF"), (void **) &stuff TSRMLS_CC)) { - if (Z_TYPE_PP(stuff) == IS_UNICODE) { - is_unicode = 1; - zval_unicode_to_string(*stuff TSRMLS_CC); - } else { - is_unicode = 0; - } -#else if (SUCCESS == zend_hash_find(_SERVER, "PHP_SELF", sizeof("PHP_SELF"), (void **) &stuff)) { -#endif - path_info = Z_STRVAL_PP(stuff); code = Z_STRLEN_PP(stuff); @@ -187,68 +128,34 @@ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char MAKE_STD_ZVAL(temp); ZVAL_STRINGL(temp, path_info, code, 0); -#if PHP_MAJOR_VERSION >= 6 - if (is_unicode) { - zval_string_to_unicode(*stuff TSRMLS_CC); - } -#endif + zend_hash_update(_SERVER, "PHAR_PHP_SELF", sizeof("PHAR_PHP_SELF"), (void *) &temp, sizeof(zval **), NULL); } } } if (PHAR_GLOBALS->phar_SERVER_mung_list & PHAR_MUNG_SCRIPT_NAME) { -#if PHP_MAJOR_VERSION >= 6 - if (phar_find_key(_SERVER, "SCRIPT_NAME", sizeof("SCRIPT_NAME"), (void **) &stuff TSRMLS_CC)) { - if (Z_TYPE_PP(stuff) == IS_UNICODE) { - is_unicode = 1; - zval_unicode_to_string(*stuff TSRMLS_CC); - } else { - is_unicode = 0; - } -#else if (SUCCESS == zend_hash_find(_SERVER, "SCRIPT_NAME", sizeof("SCRIPT_NAME"), (void **) &stuff)) { -#endif - path_info = Z_STRVAL_PP(stuff); code = Z_STRLEN_PP(stuff); ZVAL_STRINGL(*stuff, entry, entry_len, 1); MAKE_STD_ZVAL(temp); ZVAL_STRINGL(temp, path_info, code, 0); -#if PHP_MAJOR_VERSION >= 6 - if (is_unicode) { - zval_string_to_unicode(*stuff TSRMLS_CC); - } -#endif + zend_hash_update(_SERVER, "PHAR_SCRIPT_NAME", sizeof("PHAR_SCRIPT_NAME"), (void *) &temp, sizeof(zval **), NULL); } } if (PHAR_GLOBALS->phar_SERVER_mung_list & PHAR_MUNG_SCRIPT_FILENAME) { -#if PHP_MAJOR_VERSION >= 6 - if (phar_find_key(_SERVER, "SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME"), (void **) &stuff TSRMLS_CC)) { - if (Z_TYPE_PP(stuff) == IS_UNICODE) { - is_unicode = 1; - zval_unicode_to_string(*stuff TSRMLS_CC); - } else { - is_unicode = 0; - } -#else if (SUCCESS == zend_hash_find(_SERVER, "SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME"), (void **) &stuff)) { -#endif - path_info = Z_STRVAL_PP(stuff); code = Z_STRLEN_PP(stuff); Z_STRLEN_PP(stuff) = spprintf(&(Z_STRVAL_PP(stuff)), 4096, "phar://%s%s", fname, entry); MAKE_STD_ZVAL(temp); ZVAL_STRINGL(temp, path_info, code, 0); -#if PHP_MAJOR_VERSION >= 6 - if (is_unicode) { - zval_string_to_unicode(*stuff TSRMLS_CC); - } -#endif + zend_hash_update(_SERVER, "PHAR_SCRIPT_FILENAME", sizeof("PHAR_SCRIPT_FILENAME"), (void *) &temp, sizeof(zval **), NULL); } } @@ -940,11 +847,7 @@ PHP_METHOD(Phar, webPhar) if (ext) { ++ext; -#if PHP_MAJOR_VERSION >= 6 - if (phar_find_key(Z_ARRVAL_P(mimeoverride), ext, strlen(ext)+1, (void **) &val TSRMLS_CC)) { -#else if (SUCCESS == zend_hash_find(Z_ARRVAL_P(mimeoverride), ext, strlen(ext)+1, (void **) &val)) { -#endif switch (Z_TYPE_PP(val)) { case IS_LONG: if (Z_LVAL_PP(val) == PHAR_MIME_PHP || Z_LVAL_PP(val) == PHAR_MIME_PHPS) { @@ -958,11 +861,6 @@ PHP_METHOD(Phar, webPhar) RETURN_FALSE; } break; -#if PHP_MAJOR_VERSION >= 6 - case IS_UNICODE: - zval_unicode_to_string(*(val) TSRMLS_CC); - /* break intentionally omitted */ -#endif case IS_STRING: mime_type = Z_STRVAL_PP(val); code = PHAR_MIME_OTHER; @@ -1013,26 +911,12 @@ PHP_METHOD(Phar, mungServer) for (zend_hash_internal_pointer_reset(Z_ARRVAL_P(mungvalues)); SUCCESS == zend_hash_has_more_elements(Z_ARRVAL_P(mungvalues)); zend_hash_move_forward(Z_ARRVAL_P(mungvalues))) { zval **data = NULL; -#if PHP_MAJOR_VERSION >= 6 - zval *unicopy = NULL; -#endif if (SUCCESS != zend_hash_get_current_data(Z_ARRVAL_P(mungvalues), (void **) &data)) { zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "unable to retrieve array value in Phar::mungServer()"); return; } -#if PHP_MAJOR_VERSION >= 6 - if (Z_TYPE_PP(data) == IS_UNICODE) { - MAKE_STD_ZVAL(unicopy); - *unicopy = **data; - zval_copy_ctor(unicopy); - INIT_PZVAL(unicopy); - zval_unicode_to_string(unicopy TSRMLS_CC); - data = &unicopy; - } -#endif - if (Z_TYPE_PP(data) != IS_STRING) { zend_throw_exception_ex(phar_ce_PharException, 0 TSRMLS_CC, "Non-string value passed to Phar::mungServer(), expecting an array of any of these strings: PHP_SELF, REQUEST_URI, SCRIPT_FILENAME, SCRIPT_NAME"); return; @@ -1054,11 +938,6 @@ PHP_METHOD(Phar, mungServer) if (Z_STRLEN_PP(data) == sizeof("SCRIPT_FILENAME")-1 && !strncmp(Z_STRVAL_PP(data), "SCRIPT_FILENAME", sizeof("SCRIPT_FILENAME")-1)) { PHAR_GLOBALS->phar_SERVER_mung_list |= PHAR_MUNG_SCRIPT_FILENAME; } -#if PHP_MAJOR_VERSION >= 6 - if (unicopy) { - zval_ptr_dtor(&unicopy); - } -#endif } } /* }}} */ @@ -5033,11 +4912,7 @@ PHP_METHOD(PharFileInfo, getContent) phar_seek_efp(link, 0, SEEK_SET, 0, 0 TSRMLS_CC); Z_TYPE_P(return_value) = IS_STRING; -#if PHP_MAJOR_VERSION >= 6 - Z_STRLEN_P(return_value) = php_stream_copy_to_mem(fp, (void **) &(Z_STRVAL_P(return_value)), link->uncompressed_filesize, 0); -#else Z_STRLEN_P(return_value) = php_stream_copy_to_mem(fp, &(Z_STRVAL_P(return_value)), link->uncompressed_filesize, 0); -#endif if (!Z_STRVAL_P(return_value)) { Z_STRVAL_P(return_value) = estrndup("", 0); diff --git a/ext/phar/stream.c b/ext/phar/stream.c index 7e74ed60f3..ccfe2a5886 100644 --- a/ext/phar/stream.c +++ b/ext/phar/stream.c @@ -207,30 +207,19 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, char *pat fpf = php_stream_alloc(&phar_ops, idata, NULL, mode); php_url_free(resource); efree(internal_file); -#if PHP_MAJOR_VERSION >= 6 - if (context && context->options && phar_find_key(HASH_OF(context->options), "phar", sizeof("phar"), (void**)&pzoption TSRMLS_CC)) { -#else + if (context && context->options && zend_hash_find(HASH_OF(context->options), "phar", sizeof("phar"), (void**)&pzoption) == SUCCESS) { -#endif pharcontext = HASH_OF(*pzoption); if (idata->internal_file->uncompressed_filesize == 0 && idata->internal_file->compressed_filesize == 0 -#if PHP_MAJOR_VERSION >= 6 - && phar_find_key(pharcontext, "compress", sizeof("compress"), (void**)&pzoption TSRMLS_CC) -#else && zend_hash_find(pharcontext, "compress", sizeof("compress"), (void**)&pzoption) == SUCCESS -#endif && Z_TYPE_PP(pzoption) == IS_LONG && (Z_LVAL_PP(pzoption) & ~PHAR_ENT_COMPRESSION_MASK) == 0 ) { idata->internal_file->flags &= ~PHAR_ENT_COMPRESSION_MASK; idata->internal_file->flags |= Z_LVAL_PP(pzoption); } -#if PHP_MAJOR_VERSION >= 6 - if (phar_find_key(pharcontext, "metadata", sizeof("metadata"), (void**)&pzoption TSRMLS_CC)) { -#else if (zend_hash_find(pharcontext, "metadata", sizeof("metadata"), (void**)&pzoption) == SUCCESS) { -#endif if (idata->internal_file->metadata) { zval_ptr_dtor(&idata->internal_file->metadata); idata->internal_file->metadata = NULL; diff --git a/ext/phar/tar.c b/ext/phar/tar.c index 917734c992..43d1ede238 100644 --- a/ext/phar/tar.c +++ b/ext/phar/tar.c @@ -986,11 +986,8 @@ int phar_tar_flush(phar_archive_data *phar, char *user_stub, long len, int defau len = -len; } user_stub = 0; -#if PHP_MAJOR_VERSION >= 6 - if (!(len = php_stream_copy_to_mem(stubfile, (void **) &user_stub, len, 0)) || !user_stub) { -#else + if (!(len = php_stream_copy_to_mem(stubfile, &user_stub, len, 0)) || !user_stub) { -#endif if (error) { spprintf(error, 0, "unable to read resource to copy stub to new tar-based phar \"%s\"", phar->fname); } diff --git a/ext/phar/zip.c b/ext/phar/zip.c index ced975cb38..3372622552 100644 --- a/ext/phar/zip.c +++ b/ext/phar/zip.c @@ -603,11 +603,7 @@ foundit: php_stream_filter_append(&fp->readfilters, filter); -#if PHP_MAJOR_VERSION >= 6 - if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, (void **) &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) { -#else if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) { -#endif pefree(entry.filename, entry.is_persistent); #if PHP_VERSION_ID < 50207 PHAR_ZIP_FAIL("unable to read in alias, truncated (PHP 5.2.7 and newer has a potential fix for this problem)"); @@ -628,11 +624,7 @@ foundit: php_stream_filter_append(&fp->readfilters, filter); -#if PHP_MAJOR_VERSION >= 6 - if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, (void **) &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) { -#else if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) { -#endif pefree(entry.filename, entry.is_persistent); #if PHP_VERSION_ID < 50207 PHAR_ZIP_FAIL("unable to read in alias, truncated (PHP 5.2.7 and newer has a potential fix for this problem)"); @@ -643,11 +635,7 @@ foundit: php_stream_filter_flush(filter, 1); php_stream_filter_remove(filter, 1 TSRMLS_CC); } else { -#if PHP_MAJOR_VERSION >= 6 - if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, (void **) &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) { -#else if (!(entry.uncompressed_filesize = php_stream_copy_to_mem(fp, &actual_alias, entry.uncompressed_filesize, 0)) || !actual_alias) { -#endif pefree(entry.filename, entry.is_persistent); PHAR_ZIP_FAIL("unable to read in alias, truncated"); } @@ -1252,11 +1240,7 @@ int phar_zip_flush(phar_archive_data *phar, char *user_stub, long len, int defau user_stub = 0; -#if PHP_MAJOR_VERSION >= 6 - if (!(len = php_stream_copy_to_mem(stubfile, (void **) &user_stub, len, 0)) || !user_stub) { -#else if (!(len = php_stream_copy_to_mem(stubfile, &user_stub, len, 0)) || !user_stub) { -#endif if (error) { spprintf(error, 0, "unable to read resource to copy stub to new zip-based phar \"%s\"", phar->fname); } -- cgit v1.2.1 From e5bdd2c0eeab50dc1f863dae9a32d3857ece6a79 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Wed, 22 Aug 2012 13:41:47 +0800 Subject: Fixed bug #62885 (mysqli_poll - Segmentation fault) --- NEWS | 3 +++ ext/mysqli/mysqli_nonapi.c | 5 +++++ ext/mysqli/tests/bug62885.phpt | 26 ++++++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 ext/mysqli/tests/bug62885.phpt diff --git a/NEWS b/NEWS index b796117fdd..3d156c1788 100644 --- a/NEWS +++ b/NEWS @@ -22,6 +22,9 @@ PHP NEWS (reeze.xia@gmail.com) . Fixed bug #62500 (Segfault in DateInterval class when extended). (Laruence) +- MySQLnd: + . Fixed bug #62885 (mysqli_poll - Segmentation fault). (Laruence) + - PDO: . Fixed bug #62685 (Wrong return datatype in PDO::inTransaction()). (Laruence) diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c index fbfc02e2fc..0ef67a2c44 100644 --- a/ext/mysqli/mysqli_nonapi.c +++ b/ext/mysqli/mysqli_nonapi.c @@ -705,6 +705,11 @@ PHP_FUNCTION(mysqli_poll) RETURN_FALSE; } + if (!r_array && !e_array) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "No stream arrays were passed"); + RETURN_FALSE; + } + if (r_array != NULL) { mysqlnd_zval_array_to_mysqlnd_array(r_array, &new_r_array TSRMLS_CC); } diff --git a/ext/mysqli/tests/bug62885.phpt b/ext/mysqli/tests/bug62885.phpt new file mode 100644 index 0000000000..9fb0aa0f03 --- /dev/null +++ b/ext/mysqli/tests/bug62885.phpt @@ -0,0 +1,26 @@ +--TEST-- +Bug #62885 (mysqli_poll - Segmentation fault) +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +Warning: mysqli_poll(): No stream arrays were passed in %sbug62885.php on line %d + +Warning: mysqli_poll(): No stream arrays were passed in %sbug62885.php on line %d +okey -- cgit v1.2.1 From a5d0c1e21b9fa166d8fe5ec7d52a24a5f7adc107 Mon Sep 17 00:00:00 2001 From: Gustavo Lopes Date: Tue, 21 Aug 2012 23:21:59 +0200 Subject: Fix handling of several uinitialized intl objects --- ext/intl/collator/collator_class.h | 9 ++++----- ext/intl/collator/collator_create.c | 2 +- ext/intl/dateformat/dateformat.c | 2 +- ext/intl/dateformat/dateformat_attr.c | 5 +++-- ext/intl/dateformat/dateformat_class.c | 21 ++++++++++++++------- ext/intl/dateformat/dateformat_class.h | 10 +++++++++- ext/intl/formatter/formatter_class.c | 23 +++++++++++++++-------- ext/intl/formatter/formatter_class.h | 15 ++++++++++++--- ext/intl/formatter/formatter_main.c | 2 +- ext/intl/msgformat/msgformat.c | 2 +- ext/intl/msgformat/msgformat_class.c | 22 +++++++++++++++------- ext/intl/msgformat/msgformat_class.h | 10 +++++++++- ext/intl/resourcebundle/resourcebundle_class.c | 9 ++++++++- ext/intl/resourcebundle/resourcebundle_class.h | 11 ++++++++++- ext/intl/tests/dateformat_clone_bad_obj.phpt | 20 ++++++++++++++++++++ ext/intl/tests/formatter_clone_bad_obj.phpt | 20 ++++++++++++++++++++ ext/intl/tests/msgfmt_clone_bad_obj.phpt | 20 ++++++++++++++++++++ 17 files changed, 163 insertions(+), 40 deletions(-) create mode 100644 ext/intl/tests/dateformat_clone_bad_obj.phpt create mode 100644 ext/intl/tests/formatter_clone_bad_obj.phpt create mode 100644 ext/intl/tests/msgfmt_clone_bad_obj.phpt diff --git a/ext/intl/collator/collator_class.h b/ext/intl/collator/collator_class.h index 835abd66c8..7a56dfce50 100644 --- a/ext/intl/collator/collator_class.h +++ b/ext/intl/collator/collator_class.h @@ -20,8 +20,9 @@ #include -#include "intl_common.h" -#include "intl_error.h" +#include "../intl_common.h" +#include "../intl_error.h" +#include "../intl_data.h" #include @@ -54,9 +55,7 @@ extern zend_class_entry *Collator_ce_ptr; Collator_object* co = NULL; \ intl_error_reset( NULL TSRMLS_CC ); \ -#define COLLATOR_METHOD_FETCH_OBJECT \ - co = (Collator_object *) zend_object_store_get_object( object TSRMLS_CC ); \ - intl_error_reset( COLLATOR_ERROR_P( co ) TSRMLS_CC ); \ +#define COLLATOR_METHOD_FETCH_OBJECT INTL_METHOD_FETCH_OBJECT(Collator, co) // Macro to check return value of a ucol_* function call. #define COLLATOR_CHECK_STATUS( co, msg ) \ diff --git a/ext/intl/collator/collator_create.c b/ext/intl/collator/collator_create.c index 0f0cc193e4..b2a9968af4 100644 --- a/ext/intl/collator/collator_create.c +++ b/ext/intl/collator/collator_create.c @@ -45,7 +45,7 @@ static void collator_ctor(INTERNAL_FUNCTION_PARAMETERS) } INTL_CHECK_LOCALE_LEN_OBJ(locale_len, return_value); - co = (Collator_object *) zend_object_store_get_object( object TSRMLS_CC ); + COLLATOR_METHOD_FETCH_OBJECT; if(locale_len == 0) { locale = INTL_G(default_locale); diff --git a/ext/intl/dateformat/dateformat.c b/ext/intl/dateformat/dateformat.c index b399a39fcb..8aded18bd6 100644 --- a/ext/intl/dateformat/dateformat.c +++ b/ext/intl/dateformat/dateformat.c @@ -108,7 +108,7 @@ static void datefmt_ctor(INTERNAL_FUNCTION_PARAMETERS) goto error; } - DATE_FORMAT_METHOD_FETCH_OBJECT; + DATE_FORMAT_METHOD_FETCH_OBJECT_NO_CHECK; if (DATE_FORMAT_OBJECT(dfo) != NULL) { intl_errors_set(INTL_DATA_ERROR_P(dfo), U_ILLEGAL_ARGUMENT_ERROR, diff --git a/ext/intl/dateformat/dateformat_attr.c b/ext/intl/dateformat/dateformat_attr.c index 6131cedc95..b8c5f25e3a 100644 --- a/ext/intl/dateformat/dateformat_attr.c +++ b/ext/intl/dateformat/dateformat_attr.c @@ -17,8 +17,9 @@ #include "config.h" #endif -#include "php_intl.h" -#include "intl_convert.h" +#include "../php_intl.h" +#include "dateformat_class.h" +#include "../intl_convert.h" #include "dateformat_class.h" #include "dateformat_attr.h" diff --git a/ext/intl/dateformat/dateformat_class.c b/ext/intl/dateformat/dateformat_class.c index eb3f5f4e77..85a67f7f9f 100644 --- a/ext/intl/dateformat/dateformat_class.c +++ b/ext/intl/dateformat/dateformat_class.c @@ -23,6 +23,8 @@ #include "dateformat.h" #include "dateformat_attr.h" +#include + zend_class_entry *IntlDateFormatter_ce_ptr = NULL; static zend_object_handlers IntlDateFormatter_handlers; @@ -87,18 +89,23 @@ zend_object_value IntlDateFormatter_object_clone(zval *object TSRMLS_DC) zend_object_handle handle = Z_OBJ_HANDLE_P(object); IntlDateFormatter_object *dfo, *new_dfo; - DATE_FORMAT_METHOD_FETCH_OBJECT; + DATE_FORMAT_METHOD_FETCH_OBJECT_NO_CHECK; + new_obj_val = IntlDateFormatter_ce_ptr->create_object(IntlDateFormatter_ce_ptr TSRMLS_CC); new_dfo = (IntlDateFormatter_object *)zend_object_store_get_object_by_handle(new_obj_val.handle TSRMLS_CC); /* clone standard parts */ zend_objects_clone_members(&new_dfo->zo, new_obj_val, &dfo->zo, handle TSRMLS_CC); /* clone formatter object */ - DATE_FORMAT_OBJECT(new_dfo) = udat_clone(DATE_FORMAT_OBJECT(dfo), &INTL_DATA_ERROR_CODE(new_dfo)); - if(U_FAILURE(INTL_DATA_ERROR_CODE(new_dfo))) { - /* set up error in case error handler is interested */ - intl_error_set( NULL, INTL_DATA_ERROR_CODE(new_dfo), "Failed to clone IntlDateFormatter object", 0 TSRMLS_CC ); - IntlDateFormatter_object_dtor(new_dfo, new_obj_val.handle TSRMLS_CC); /* free new object */ - zend_error(E_ERROR, "Failed to clone IntlDateFormatter object"); + if (dfo->datef_data.udatf != NULL) { + DATE_FORMAT_OBJECT(new_dfo) = udat_clone(DATE_FORMAT_OBJECT(dfo), &INTL_DATA_ERROR_CODE(dfo)); + if (U_FAILURE(INTL_DATA_ERROR_CODE(dfo))) { + /* set up error in case error handler is interested */ + intl_errors_set(INTL_DATA_ERROR_P(dfo), INTL_DATA_ERROR_CODE(dfo), + "Failed to clone IntlDateFormatter object", 0 TSRMLS_CC ); + zend_throw_exception(NULL, "Failed to clone IntlDateFormatter object", 0 TSRMLS_CC); + } + } else { + zend_throw_exception(NULL, "Cannot clone unconstructed IntlDateFormatter", 0 TSRMLS_CC); } return new_obj_val; } diff --git a/ext/intl/dateformat/dateformat_class.h b/ext/intl/dateformat/dateformat_class.h index 9ad83ee3d6..d58abe42f5 100644 --- a/ext/intl/dateformat/dateformat_class.h +++ b/ext/intl/dateformat/dateformat_class.h @@ -38,7 +38,15 @@ extern zend_class_entry *IntlDateFormatter_ce_ptr; /* Auxiliary macros */ #define DATE_FORMAT_METHOD_INIT_VARS INTL_METHOD_INIT_VARS(IntlDateFormatter, dfo) -#define DATE_FORMAT_METHOD_FETCH_OBJECT INTL_METHOD_FETCH_OBJECT(IntlDateFormatter, dfo) +#define DATE_FORMAT_METHOD_FETCH_OBJECT_NO_CHECK INTL_METHOD_FETCH_OBJECT(IntlDateFormatter, dfo) +#define DATE_FORMAT_METHOD_FETCH_OBJECT \ + DATE_FORMAT_METHOD_FETCH_OBJECT_NO_CHECK; \ + if (dfo->datef_data.udatf == NULL) \ + { \ + intl_errors_set(&dfo->datef_data.error, U_ILLEGAL_ARGUMENT_ERROR, "Found unconstructed IntlDateFormatter", 0 TSRMLS_CC); \ + RETURN_FALSE; \ + } + #define DATE_FORMAT_OBJECT(dfo) (dfo)->datef_data.udatf #endif // #ifndef DATE_FORMAT_CLASS_H diff --git a/ext/intl/formatter/formatter_class.c b/ext/intl/formatter/formatter_class.c index 0bb5894f09..5790f0c2e1 100644 --- a/ext/intl/formatter/formatter_class.c +++ b/ext/intl/formatter/formatter_class.c @@ -24,6 +24,8 @@ #include "formatter_main.h" #include "formatter_attr.h" +#include + zend_class_entry *NumberFormatter_ce_ptr = NULL; static zend_object_handlers NumberFormatter_handlers; @@ -82,18 +84,23 @@ zend_object_value NumberFormatter_object_clone(zval *object TSRMLS_DC) zend_object_handle handle = Z_OBJ_HANDLE_P(object); NumberFormatter_object *nfo, *new_nfo; - FORMATTER_METHOD_FETCH_OBJECT; + FORMATTER_METHOD_FETCH_OBJECT_NO_CHECK; new_obj_val = NumberFormatter_ce_ptr->create_object(NumberFormatter_ce_ptr TSRMLS_CC); new_nfo = (NumberFormatter_object *)zend_object_store_get_object_by_handle(new_obj_val.handle TSRMLS_CC); /* clone standard parts */ zend_objects_clone_members(&new_nfo->zo, new_obj_val, &nfo->zo, handle TSRMLS_CC); - /* clone formatter object */ - FORMATTER_OBJECT(new_nfo) = unum_clone(FORMATTER_OBJECT(nfo), &INTL_DATA_ERROR_CODE(new_nfo)); - if(U_FAILURE(INTL_DATA_ERROR_CODE(new_nfo))) { - /* set up error in case error handler is interested */ - intl_error_set( NULL, INTL_DATA_ERROR_CODE(new_nfo), "Failed to clone NumberFormatter object", 0 TSRMLS_CC ); - NumberFormatter_object_dtor(new_nfo, new_obj_val.handle TSRMLS_CC); /* free new object */ - zend_error(E_ERROR, "Failed to clone NumberFormatter object"); + /* clone formatter object. It may fail, the destruction code must handle this case */ + if (FORMATTER_OBJECT(nfo) != NULL) { + FORMATTER_OBJECT(new_nfo) = unum_clone(FORMATTER_OBJECT(nfo), + &INTL_DATA_ERROR_CODE(nfo)); + if (U_FAILURE(INTL_DATA_ERROR_CODE(nfo))) { + /* set up error in case error handler is interested */ + intl_errors_set(INTL_DATA_ERROR_P(nfo), INTL_DATA_ERROR_CODE(nfo), + "Failed to clone NumberFormatter object", 0 TSRMLS_CC); + zend_throw_exception(NULL, "Failed to clone NumberFormatter object", 0 TSRMLS_CC); + } + } else { + zend_throw_exception(NULL, "Cannot clone unconstructed NumberFormatter", 0 TSRMLS_CC); } return new_obj_val; } diff --git a/ext/intl/formatter/formatter_class.h b/ext/intl/formatter/formatter_class.h index cf1cb060c6..9582866664 100644 --- a/ext/intl/formatter/formatter_class.h +++ b/ext/intl/formatter/formatter_class.h @@ -34,8 +34,17 @@ extern zend_class_entry *NumberFormatter_ce_ptr; /* Auxiliary macros */ -#define FORMATTER_METHOD_INIT_VARS INTL_METHOD_INIT_VARS(NumberFormatter, nfo) -#define FORMATTER_METHOD_FETCH_OBJECT INTL_METHOD_FETCH_OBJECT(NumberFormatter, nfo) -#define FORMATTER_OBJECT(nfo) (nfo)->nf_data.unum +#define FORMATTER_METHOD_INIT_VARS INTL_METHOD_INIT_VARS(NumberFormatter, nfo) +#define FORMATTER_OBJECT(nfo) (nfo)->nf_data.unum +#define FORMATTER_METHOD_FETCH_OBJECT_NO_CHECK INTL_METHOD_FETCH_OBJECT(NumberFormatter, nfo) +#define FORMATTER_METHOD_FETCH_OBJECT \ + FORMATTER_METHOD_FETCH_OBJECT_NO_CHECK; \ + if (FORMATTER_OBJECT(nfo) == NULL) \ + { \ + intl_errors_set(&nfo->nf_data.error, U_ILLEGAL_ARGUMENT_ERROR, \ + "Found unconstructed NumberFormatter", 0 TSRMLS_CC); \ + RETURN_FALSE; \ + } + #endif // #ifndef FORMATTER_CLASS_H diff --git a/ext/intl/formatter/formatter_main.c b/ext/intl/formatter/formatter_main.c index 8fa17560b8..5cb6483326 100644 --- a/ext/intl/formatter/formatter_main.c +++ b/ext/intl/formatter/formatter_main.c @@ -47,7 +47,7 @@ static void numfmt_ctor(INTERNAL_FUNCTION_PARAMETERS) INTL_CHECK_LOCALE_LEN_OBJ(locale_len, return_value); object = return_value; - FORMATTER_METHOD_FETCH_OBJECT; + FORMATTER_METHOD_FETCH_OBJECT_NO_CHECK; /* Convert pattern (if specified) to UTF-16. */ if(pattern && pattern_len) { diff --git a/ext/intl/msgformat/msgformat.c b/ext/intl/msgformat/msgformat.c index 0a01204fae..e3fb9425a9 100644 --- a/ext/intl/msgformat/msgformat.c +++ b/ext/intl/msgformat/msgformat.c @@ -49,7 +49,7 @@ static void msgfmt_ctor(INTERNAL_FUNCTION_PARAMETERS) } INTL_CHECK_LOCALE_LEN_OBJ(locale_len, return_value); - MSG_FORMAT_METHOD_FETCH_OBJECT; + MSG_FORMAT_METHOD_FETCH_OBJECT_NO_CHECK; /* Convert pattern (if specified) to UTF-16. */ if(pattern && pattern_len) { diff --git a/ext/intl/msgformat/msgformat_class.c b/ext/intl/msgformat/msgformat_class.c index 7ed28df3dc..9cccef2709 100644 --- a/ext/intl/msgformat/msgformat_class.c +++ b/ext/intl/msgformat/msgformat_class.c @@ -24,6 +24,8 @@ #include "msgformat.h" #include "msgformat_attr.h" +#include + zend_class_entry *MessageFormatter_ce_ptr = NULL; static zend_object_handlers MessageFormatter_handlers; @@ -80,18 +82,24 @@ zend_object_value MessageFormatter_object_clone(zval *object TSRMLS_DC) zend_object_handle handle = Z_OBJ_HANDLE_P(object); MessageFormatter_object *mfo, *new_mfo; - MSG_FORMAT_METHOD_FETCH_OBJECT; + MSG_FORMAT_METHOD_FETCH_OBJECT_NO_CHECK; new_obj_val = MessageFormatter_ce_ptr->create_object(MessageFormatter_ce_ptr TSRMLS_CC); new_mfo = (MessageFormatter_object *)zend_object_store_get_object_by_handle(new_obj_val.handle TSRMLS_CC); /* clone standard parts */ zend_objects_clone_members(&new_mfo->zo, new_obj_val, &mfo->zo, handle TSRMLS_CC); + /* clone formatter object */ - MSG_FORMAT_OBJECT(new_mfo) = umsg_clone(MSG_FORMAT_OBJECT(mfo), &INTL_DATA_ERROR_CODE(new_mfo)); - if(U_FAILURE(INTL_DATA_ERROR_CODE(new_mfo))) { - /* set up error in case error handler is interested */ - intl_error_set( NULL, INTL_DATA_ERROR_CODE(new_mfo), "Failed to clone MessageFormatter object", 0 TSRMLS_CC ); - MessageFormatter_object_dtor(new_mfo, new_obj_val.handle TSRMLS_CC); /* free new object */ - zend_error(E_ERROR, "Failed to clone MessageFormatter object"); + if (MSG_FORMAT_OBJECT(mfo) != NULL) { + MSG_FORMAT_OBJECT(new_mfo) = umsg_clone(MSG_FORMAT_OBJECT(mfo), + &INTL_DATA_ERROR_CODE(mfo)); + + if (U_FAILURE(INTL_DATA_ERROR_CODE(mfo))) { + intl_errors_set(INTL_DATA_ERROR_P(mfo), INTL_DATA_ERROR_CODE(mfo), + "Failed to clone MessageFormatter object", 0 TSRMLS_CC); + zend_throw_exception_ex(NULL, 0, "Failed to clone MessageFormatter object"); + } + } else { + zend_throw_exception_ex(NULL, 0, "Cannot clone unconstructed MessageFormatter"); } return new_obj_val; } diff --git a/ext/intl/msgformat/msgformat_class.h b/ext/intl/msgformat/msgformat_class.h index b6b8e33226..337e04e647 100644 --- a/ext/intl/msgformat/msgformat_class.h +++ b/ext/intl/msgformat/msgformat_class.h @@ -37,7 +37,15 @@ extern zend_class_entry *MessageFormatter_ce_ptr; /* Auxiliary macros */ #define MSG_FORMAT_METHOD_INIT_VARS INTL_METHOD_INIT_VARS(MessageFormatter, mfo) -#define MSG_FORMAT_METHOD_FETCH_OBJECT INTL_METHOD_FETCH_OBJECT(MessageFormatter, mfo) +#define MSG_FORMAT_METHOD_FETCH_OBJECT_NO_CHECK INTL_METHOD_FETCH_OBJECT(MessageFormatter, mfo) +#define MSG_FORMAT_METHOD_FETCH_OBJECT \ + MSG_FORMAT_METHOD_FETCH_OBJECT_NO_CHECK; \ + if (MSG_FORMAT_OBJECT(mfo) == NULL) { \ + intl_errors_set(&mfo->mf_data.error, U_ILLEGAL_ARGUMENT_ERROR, \ + "Found unconstructed MessageFormatter", 0 TSRMLS_CC); \ + RETURN_FALSE; \ + } + #define MSG_FORMAT_OBJECT(mfo) (mfo)->mf_data.umsgf #if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM < 48 diff --git a/ext/intl/resourcebundle/resourcebundle_class.c b/ext/intl/resourcebundle/resourcebundle_class.c index d2a29d9b25..9c0459e1a3 100644 --- a/ext/intl/resourcebundle/resourcebundle_class.c +++ b/ext/intl/resourcebundle/resourcebundle_class.c @@ -252,7 +252,14 @@ PHP_FUNCTION( resourcebundle_get ) /* {{{ resourcebundle_array_count */ int resourcebundle_array_count(zval *object, long *count TSRMLS_DC) { - ResourceBundle_object *rb = (ResourceBundle_object *) zend_object_store_get_object( object TSRMLS_CC); + ResourceBundle_object *rb; + RESOURCEBUNDLE_METHOD_FETCH_OBJECT_NO_CHECK; + + if (rb->me == NULL) { + intl_errors_set(&rb->error, U_ILLEGAL_ARGUMENT_ERROR, + "Found unconstructed ResourceBundle", 0 TSRMLS_CC); + return 0; + } *count = ures_getSize( rb->me ); diff --git a/ext/intl/resourcebundle/resourcebundle_class.h b/ext/intl/resourcebundle/resourcebundle_class.h index 4755d723b8..8da3ed9d47 100644 --- a/ext/intl/resourcebundle/resourcebundle_class.h +++ b/ext/intl/resourcebundle/resourcebundle_class.h @@ -33,7 +33,16 @@ typedef struct { } ResourceBundle_object; #define RESOURCEBUNDLE_METHOD_INIT_VARS INTL_METHOD_INIT_VARS(ResourceBundle, rb) -#define RESOURCEBUNDLE_METHOD_FETCH_OBJECT INTL_METHOD_FETCH_OBJECT(ResourceBundle, rb) +#define RESOURCEBUNDLE_METHOD_FETCH_OBJECT_NO_CHECK INTL_METHOD_FETCH_OBJECT(ResourceBundle, rb) +#define RESOURCEBUNDLE_METHOD_FETCH_OBJECT \ + INTL_METHOD_FETCH_OBJECT(ResourceBundle, rb); \ + if (RESOURCEBUNDLE_OBJECT(rb) == NULL) { \ + intl_errors_set(&rb->error, U_ILLEGAL_ARGUMENT_ERROR, \ + "Found unconstructed ResourceBundle", 0 TSRMLS_CC); \ + RETURN_FALSE; \ + } + + #define RESOURCEBUNDLE_OBJECT(rb) (rb)->me void resourcebundle_register_class( TSRMLS_D ); diff --git a/ext/intl/tests/dateformat_clone_bad_obj.phpt b/ext/intl/tests/dateformat_clone_bad_obj.phpt new file mode 100644 index 0000000000..5e12b96ae8 --- /dev/null +++ b/ext/intl/tests/dateformat_clone_bad_obj.phpt @@ -0,0 +1,20 @@ +--TEST-- +Cloning unconstructed IntlDateFormatter +--SKIPIF-- + +--FILE-- +getMessage()); +} + +--EXPECTF-- +string(%s) "Cannot clone unconstructed IntlDateFormatter" diff --git a/ext/intl/tests/formatter_clone_bad_obj.phpt b/ext/intl/tests/formatter_clone_bad_obj.phpt new file mode 100644 index 0000000000..ef7b28a546 --- /dev/null +++ b/ext/intl/tests/formatter_clone_bad_obj.phpt @@ -0,0 +1,20 @@ +--TEST-- +Cloning unconstructed numfmt +--SKIPIF-- + +--FILE-- +getMessage()); +} + +--EXPECTF-- +string(42) "Cannot clone unconstructed NumberFormatter" diff --git a/ext/intl/tests/msgfmt_clone_bad_obj.phpt b/ext/intl/tests/msgfmt_clone_bad_obj.phpt new file mode 100644 index 0000000000..48321094d1 --- /dev/null +++ b/ext/intl/tests/msgfmt_clone_bad_obj.phpt @@ -0,0 +1,20 @@ +--TEST-- +Cloning unconstructed MessageFormatter +--SKIPIF-- + +--FILE-- +getMessage()); +} + +--EXPECTF-- +string(%d) "Cannot clone unconstructed MessageFormatter" -- cgit v1.2.1 From ca4dd76160568ea30227469535431df12f4f5c27 Mon Sep 17 00:00:00 2001 From: Gustavo Lopes Date: Wed, 22 Aug 2012 23:04:46 +0200 Subject: Update NEWS given a5d0c1e2 --- NEWS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS b/NEWS index 3d156c1788..8492aa6c6b 100644 --- a/NEWS +++ b/NEWS @@ -22,6 +22,9 @@ PHP NEWS (reeze.xia@gmail.com) . Fixed bug #62500 (Segfault in DateInterval class when extended). (Laruence) +- Intl: + . Fix null pointer dereferences in some classes of ext/intl. (Gustavo) + - MySQLnd: . Fixed bug #62885 (mysqli_poll - Segmentation fault). (Laruence) -- cgit v1.2.1 From 6a8db0c0815b0458a8db3b213487198cc5288875 Mon Sep 17 00:00:00 2001 From: Philip Olson Date: Wed, 22 Aug 2012 23:33:29 -0700 Subject: Updated INSTALL. Generated from the XML Docs. --- INSTALL | 202 ++++++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 128 insertions(+), 74 deletions(-) diff --git a/INSTALL b/INSTALL index b493f3c29b..c0cbe5f2c1 100644 --- a/INSTALL +++ b/INSTALL @@ -24,6 +24,7 @@ Installing PHP + Installing a PHP extension on Windows + Compiling shared PECL extensions with the pecl command + Compiling shared PECL extensions with phpize + + php-config + Compiling PECL extensions statically into PHP * Problems? + Read the FAQ @@ -83,7 +84,7 @@ General Installation Considerations With PHP you can also write desktop GUI applications using the PHP-GTK extension. This is a completely different approach than writing web pages, as you do not output any HTML, but manage windows and objects - within them. For more information about PHP-GTK, please » visit the + within them. For more information about PHP-GTK, please » visit the site dedicated to this extension. PHP-GTK is not included in the official PHP distribution. @@ -92,9 +93,9 @@ General Installation Considerations will also find information on the command line executable in the following sections. - PHP source code and binary distributions for Windows can be found at » - http://www.php.net/downloads.php. We recommend you to choose a » mirror - nearest to you for downloading the distributions. + PHP source code and binary distributions for Windows can be found at + » http://www.php.net/downloads.php. We recommend you to choose a + » mirror nearest to you for downloading the distributions. __________________________________________________________________ __________________________________________________________________ @@ -140,9 +141,9 @@ Table of Contents * A web server * Any module specific components (such as GD, PDF libs, etc.) - When building directly from SVN sources or after custom modifications + When building directly from Git sources or after custom modifications you might also need: - * autoconf: 2.13 + * autoconf: 2.13+ (for PHP < 5.4.0), 2.59+ (for PHP >= 5.4.0) * automake: 1.4+ * libtool: 1.4.x+ (except 1.4.2) * re2c: Version 0.13.4 or newer @@ -375,12 +376,12 @@ Apache 2.x on Unix systems For information on why, read the related FAQ entry on using Apache2 with a threaded MPM - The » Apache Documentation is the most authoritative source of + The » Apache Documentation is the most authoritative source of information on the Apache 2.x server. More information about installation options for Apache may be found there. - The most recent version of Apache HTTP Server may be obtained from » - Apache download site, and a fitting PHP version from the above + The most recent version of Apache HTTP Server may be obtained from + » Apache download site, and a fitting PHP version from the above mentioned places. This quick guide covers only the basics to get started with Apache 2.x and PHP. For more information read the » Apache Documentation. The version numbers have been omitted here, to ensure @@ -498,7 +499,7 @@ service httpd restart This should not be undertaken without being aware of the consequences of this decision, and having at least a fair understanding of the - implications. The Apache documentation regarding » MPM-Modules + implications. The Apache documentation regarding » MPM-Modules discusses MPMs in a great deal more detail. Note: @@ -520,7 +521,7 @@ Lighttpd 1.4 on Unix systems This section contains notes and hints specific to Lighttpd 1.4 installs of PHP on Unix systems. - Please use the » Lighttpd trac to learn how to install Lighttpd + Please use the » Lighttpd trac to learn how to install Lighttpd properly before continuing. Fastcgi is the preferred SAPI to connect PHP and Lighttpd. Fastcgi is @@ -627,15 +628,15 @@ Sun, iPlanet and Netscape servers on Sun Solaris current web servers read the note about subrequests. You can find more information about setting up PHP for the Netscape - Enterprise Server (NES) here: » - http://benoit.noss.free.fr/php/install-php4.html + Enterprise Server (NES) here: + » http://benoit.noss.free.fr/php/install-php4.html To build PHP with Sun JSWS/Sun ONE WS/iPlanet/Netscape web servers, enter the proper install directory for the --with-nsapi=[DIR] option. The default directory is usually /opt/netscape/suitespot/. Please also read /php-xxx-version/sapi/nsapi/nsapi-readme.txt. - 1. Install the following packages from » http://www.sunfreeware.com/ + 1. Install the following packages from » http://www.sunfreeware.com/ or another download site: + autoconf-2.13 + automake-1.4 @@ -837,7 +838,7 @@ Testing Using Variables Some server supplied environment variables are not defined in the - current » CGI/1.1 specification. Only the following variables are + current » CGI/1.1 specification. Only the following variables are defined there: AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD, @@ -855,20 +856,20 @@ HP-UX specific installation notes There are two main options for installing PHP on HP-UX systems. Either compile it, or install a pre-compiled binary. - Official pre-compiled packages are located here: » - http://software.hp.com/ + Official pre-compiled packages are located here: + » http://software.hp.com/ Until this manual section is rewritten, the documentation about compiling PHP (and related extensions) on HP-UX systems has been - removed. For now, consider reading the following external resource: » - Building Apache and PHP on HP-UX 11.11 + removed. For now, consider reading the following external resource: + » Building Apache and PHP on HP-UX 11.11 __________________________________________________________________ __________________________________________________________________ OpenBSD installation notes - This section contains notes and hints specific to installing PHP on » - OpenBSD 3.6. + This section contains notes and hints specific to installing PHP on + » OpenBSD 3.6. Using Binary Packages @@ -900,12 +901,12 @@ Using Binary Packages (install the PEAR libraries) # pkg_add php4-pear-4.3.8.tgz - Read the » packages(7) manual page for more information about binary + Read the » packages(7) manual page for more information about binary packages on OpenBSD. Using Ports - You can also compile up PHP from source using the » ports tree. + You can also compile up PHP from source using the » ports tree. However, this is only recommended for users familiar with OpenBSD. The PHP 4 port is split into two sub-directories: core and extensions. The extensions directory generates sub-packages for all of the supported @@ -926,7 +927,7 @@ Common Problems automatically installs into the correct chroot directories, so no special modification is needed there. More information on the OpenBSD Apache is available in the » OpenBSD FAQ. - * The OpenBSD 3.6 package for the » gd extension requires XFree86 to + * The OpenBSD 3.6 package for the » gd extension requires XFree86 to be installed. If you do not wish to use some of the font features that require X11, install the php4-gd-4.3.8-no_x11.tgz package instead. @@ -951,18 +952,26 @@ Required software Solaris installs often lack C compilers and their related tools. Read this FAQ for information on why using GNU versions for some of these - tools is necessary. The required software is as follows: + tools is necessary. + + For unpacking the PHP distribution you need + * tar + * gzip or + * bzip2 + + For compiling PHP you need * gcc (recommended, other C compilers may work) * make - * flex + * GNU sed + + For building extra extensions or hacking the code of PHP you might also + need + * flex (up to PHP 5.2) + * re2c * bison * m4 * autoconf * automake - * perl - * gzip - * tar - * GNU sed In addition, you will need to install (and possibly compile) any additional software specific to your configuration, such as Oracle or @@ -971,14 +980,16 @@ Required software Using Packages You can simplify the Solaris install process by using pkgadd to install - most of your needed components. + most of your needed components. The Image Packaging System (IPS) for + Solaris 11 Express also contains most of the required components for + installation using the pkg command. __________________________________________________________________ __________________________________________________________________ Debian GNU/Linux installation notes - This section contains notes and hints specific to installing PHP on » - Debian GNU/Linux. + This section contains notes and hints specific to installing PHP on + » Debian GNU/Linux. Warning Unofficial builds from third-parties are not supported here. Any bugs @@ -1205,6 +1216,7 @@ Table of Contents * Installing a PHP extension on Windows * Compiling shared PECL extensions with the pecl command * Compiling shared PECL extensions with phpize + * php-config * Compiling PECL extensions statically into PHP __________________________________________________________________ @@ -1227,8 +1239,8 @@ Introduction to PECL Installations To this php.ini file, or through the use of the dl() function. When building PHP modules, it's important to have known-good versions - of the required tools (autoconf, automake, libtool, etc.) See the » - Anonymous SVN Instructions for details on the required tools, and + of the required tools (autoconf, automake, libtool, etc.) See the + » Anonymous Git Instructions for details on the required tools, and required versions. __________________________________________________________________ __________________________________________________________________ @@ -1247,7 +1259,7 @@ Downloading PECL extensions the PECL web site are available for download and installation using the » pecl command. Specific revisions may also be specified. * SVN Most PECL extensions also reside in SVN. A web-based view may - be seen at » http://svn.php.net/viewvc/pecl/. To download straight + be seen at » http://svn.php.net/viewvc/pecl/. To download straight from SVN, the following sequence of commands may be used: $ svn checkout http://svn.php.net/repository/pecl/extname/trunk extname @@ -1279,7 +1291,7 @@ Where to find an extension? PHP extensions are usually called "php_*.dll" (where the star represents the name of the extension) and they are located under the - "PHP\ext" ("PHP\extensions" in PHP4) folder. + "PHP\ext" ("PHP\extensions" in PHP 4) folder. PHP ships with the extensions most useful to the majority of developers. They are called "core" extensions. @@ -1365,7 +1377,7 @@ Resolving problems Compiling shared PECL extensions with the pecl command - PECL makes it easy to create shared PHP extensions. Using the » pecl + PECL makes it easy to create shared PHP extensions. Using the » pecl command, do the following: $ pecl install extname @@ -1424,6 +1436,51 @@ $ make __________________________________________________________________ __________________________________________________________________ +php-config + + php-config is a simple shell script for obtaining information about the + installed PHP configuration. + + When compiling extensions, if you have multiple PHP versions installed, + you may specify for which installation you'd like to build by using the + --with-php-config option during configuration, specifying the path of + the respective php-config script. + + The list of command line options provided by the php-config script can + be queried anytime by running php-config with the -h switch: +Usage: /usr/local/bin/php-config [OPTION] +Options: + --prefix [...] + --includes [...] + --ldflags [...] + --libs [...] + --extension-dir [...] + --include-dir [...] + --php-binary [...] + --php-sapis [...] + --configure-options [...] + --version [...] + --vernum [...] + + CAPTION: Command line options + + Option Description + --prefix Directory prefix where PHP is installed, e.g. /usr/local + --includes List of -I options with all include files + --ldflags LD Flags which PHP was compiled with + --libs Extra libraries which PHP was compiled with + --extension-dir Directory where extensions are searched by default + --include-dir Directory prefix where header files are installed by + default + --php-binary Full path to php CLI or CGI binary + --php-sapis Show all SAPI modules available + --configure-options Configure options to recreate configuration of + current PHP installation + --version PHP version + --vernum PHP version as integer + __________________________________________________________________ + __________________________________________________________________ + Compiling PECL extensions statically into PHP You might find that you need to build a PECL extension statically into @@ -1485,11 +1542,11 @@ Other problems If you are still stuck, someone on the PHP installation mailing list may be able to help you. You should check out the archive first, in case someone already answered someone else who had the same problem as - you. The archives are available from the support page on » - http://www.php.net/support.php. To subscribe to the PHP installation - mailing list, send an empty mail to » - php-install-subscribe@lists.php.net. The mailing list address is » - php-install@lists.php.net. + you. The archives are available from the support page on + » http://www.php.net/support.php. To subscribe to the PHP installation + mailing list, send an empty mail to + » php-install-subscribe@lists.php.net. The mailing list address is + » php-install@lists.php.net. If you want to get help on the mailing list, please try to be precise and give the necessary details about your environment (which operating @@ -1504,11 +1561,11 @@ Bug reports If you think you have found a bug in PHP, please report it. The PHP developers probably don't know about it, and unless you report it, chances are it won't be fixed. You can report bugs using the - bug-tracking system at » http://bugs.php.net/. Please do not send bug + bug-tracking system at » http://bugs.php.net/. Please do not send bug reports in mailing list or personal letters. The bug system is also suitable to submit feature requests. - Read the » How to report a bug document before submitting any bug + Read the » How to report a bug document before submitting any bug reports! __________________________________________________________________ __________________________________________________________________ @@ -1528,14 +1585,14 @@ The configuration file The configuration file (php.ini) is read when PHP starts up. For the server module versions of PHP, this happens only once when the web - server is started. For the CGI and CLI version, it happens on every + server is started. For the CGI and CLI versions, it happens on every invocation. - php.ini is searched in these locations (in order): + php.ini is searched for in these locations (in order): * SAPI module specific location (PHPIniDir directive in Apache 2, -c command line option in CGI and CLI, php_ini parameter in NSAPI, PHP_INI_PATH environment variable in THTTPD) - * The PHPRC environment variable. Before PHP 5.2.0 this was checked + * The PHPRC environment variable. Before PHP 5.2.0, this was checked after the registry key mentioned below. * As of PHP 5.2.0, the location of the php.ini file can be set for different versions of PHP. The following registry keys are examined @@ -1543,33 +1600,33 @@ The configuration file [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] and [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], where x, y and z mean the PHP major, minor and release versions. If there is a value for - IniFilePath in these keys, then the first one found will be used as - the location of the php.ini (Windows only). + IniFilePath in any of these keys, the first one found will be used + as the location of the php.ini (Windows only). * [HKEY_LOCAL_MACHINE\SOFTWARE\PHP], value of IniFilePath (Windows only). - * Current working directory (except CLI) + * Current working directory (except CLI). * The web server's directory (for SAPI modules), or directory of PHP - (otherwise in Windows) + (otherwise in Windows). * Windows directory (C:\windows or C:\winnt) (for Windows), or - --with-config-file-path compile time option + --with-config-file-path compile time option. - If php-SAPI.ini exists (where SAPI is used SAPI, so the filename is - e.g. php-cli.ini or php-apache.ini), it's used instead of php.ini. SAPI - name can be determined by php_sapi_name(). + If php-SAPI.ini exists (where SAPI is the SAPI in use, so, for example, + php-cli.ini or php-apache.ini), it is used instead of php.ini. The SAPI + name can be determined with php_sapi_name(). Note: - The Apache web server changes the directory to root at startup + The Apache web server changes the directory to root at startup, causing PHP to attempt to read php.ini from the root filesystem if it exists. - The php.ini directives handled by extensions are documented - respectively on the pages of the extensions themselves. The list of the - core directives is available in the appendix. Probably not all PHP - directives are documented in the manual though. For a complete list of + The php.ini directives handled by extensions are documented on the + respective pages of the extensions themselves. A list of the core + directives is available in the appendix. Not all PHP directives are + necessarily documented in this manual: for a complete list of directives available in your PHP version, please read your well - commented php.ini file. Alternatively, you may find the » the latest - php.ini from SVN helpful too. + commented php.ini file. Alternatively, you may find » the latest + php.ini from Git helpful too. Example #1 php.ini example ; any text on a line after an unquoted semicolon (;) is ignored @@ -1635,12 +1692,13 @@ Where a configuration setting may be set CAPTION: Definition of PHP_INI_* modes - Mode Value Meaning - PHP_INI_USER 1 Entry can be set in user scripts (like with ini_set()) - or in the Windows registry - PHP_INI_PERDIR 6 Entry can be set in php.ini, .htaccess or httpd.conf - PHP_INI_SYSTEM 4 Entry can be set in php.ini or httpd.conf - PHP_INI_ALL 7 Entry can be set anywhere + Mode Meaning + PHP_INI_USER Entry can be set in user scripts (like with ini_set()) or + in the Windows registry. Since PHP 5.3, entry can be set in .user.ini + PHP_INI_PERDIR Entry can be set in php.ini, .htaccess, httpd.conf or + .user.ini (since PHP 5.3) + PHP_INI_SYSTEM Entry can be set in php.ini or httpd.conf + PHP_INI_ALL Entry can be set anywhere __________________________________________________________________ __________________________________________________________________ @@ -1788,13 +1846,9 @@ Installation each request to play in, further weaknesses are introduced into PHP's system. - If you feel you have to use a threaded MPM, look at a FastCGI + If you want to use a threaded MPM, look at a FastCGI configuration where PHP is running in its own memory space. - And finally, this warning against using a threaded MPM is not as - strong for Windows systems because most libraries on that - platform tend to be threadsafe. - Unix/Windows: Where should my php.ini file be located? By default on Unix it should be in /usr/local/lib which is /lib. Most people will want to change this at -- cgit v1.2.1 From eca4fc69918c856966298435bd1133e55a3c8e58 Mon Sep 17 00:00:00 2001 From: Anatoliy Belsky Date: Thu, 23 Aug 2012 13:32:06 +0200 Subject: ZTS fix introduced by Felipe must also go into 5.3 --- ext/intl/msgformat/msgformat_class.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/intl/msgformat/msgformat_class.c b/ext/intl/msgformat/msgformat_class.c index 9cccef2709..36d06d2d36 100644 --- a/ext/intl/msgformat/msgformat_class.c +++ b/ext/intl/msgformat/msgformat_class.c @@ -96,10 +96,10 @@ zend_object_value MessageFormatter_object_clone(zval *object TSRMLS_DC) if (U_FAILURE(INTL_DATA_ERROR_CODE(mfo))) { intl_errors_set(INTL_DATA_ERROR_P(mfo), INTL_DATA_ERROR_CODE(mfo), "Failed to clone MessageFormatter object", 0 TSRMLS_CC); - zend_throw_exception_ex(NULL, 0, "Failed to clone MessageFormatter object"); + zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Failed to clone MessageFormatter object"); } } else { - zend_throw_exception_ex(NULL, 0, "Cannot clone unconstructed MessageFormatter"); + zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Cannot clone unconstructed MessageFormatter"); } return new_obj_val; } -- cgit v1.2.1 From 13bcf685cb0a92e502ebe39f4b22c64304a9f333 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 23 Aug 2012 23:27:16 +0800 Subject: Fixed bug #62904 (Crash when cloning an object which inherits SplFixedArray) --- NEWS | 2 ++ ext/spl/spl_fixedarray.c | 12 ++++++++---- ext/spl/tests/bug62904.phpt | 19 +++++++++++++++++++ 3 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 ext/spl/tests/bug62904.phpt diff --git a/NEWS b/NEWS index 8492aa6c6b..9af7977fee 100644 --- a/NEWS +++ b/NEWS @@ -39,6 +39,8 @@ PHP NEWS . Fixed bug (segfault due to retval is not initialized). (Laruence) - SPL: + . Fixed bug #62904 (Crash when cloning an object which inherits SplFixedArray) + (Laruence) . Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault). (Laruence, Gustavo) diff --git a/ext/spl/spl_fixedarray.c b/ext/spl/spl_fixedarray.c index ee8f51eb33..0aac6d3f30 100644 --- a/ext/spl/spl_fixedarray.c +++ b/ext/spl/spl_fixedarray.c @@ -223,10 +223,14 @@ static zend_object_value spl_fixedarray_object_new_ex(zend_class_entry *class_ty if (orig && clone_orig) { spl_fixedarray_object *other = (spl_fixedarray_object*)zend_object_store_get_object(orig TSRMLS_CC); intern->ce_get_iterator = other->ce_get_iterator; - - intern->array = emalloc(sizeof(spl_fixedarray)); - spl_fixedarray_init(intern->array, other->array->size TSRMLS_CC); - spl_fixedarray_copy(intern->array, other->array TSRMLS_CC); + if (!other->array) { + /* leave a empty object, will be dtor later by CLONE handler */ + zend_throw_exception(spl_ce_RuntimeException, "The instance wasn't initialized properly", 0 TSRMLS_CC); + } else { + intern->array = emalloc(sizeof(spl_fixedarray)); + spl_fixedarray_init(intern->array, other->array->size TSRMLS_CC); + spl_fixedarray_copy(intern->array, other->array TSRMLS_CC); + } } while (parent) { diff --git a/ext/spl/tests/bug62904.phpt b/ext/spl/tests/bug62904.phpt new file mode 100644 index 0000000000..7e392da9ab --- /dev/null +++ b/ext/spl/tests/bug62904.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #62904 (Crash when cloning an object which inherits SplFixedArray) +--FILE-- +getMessage()); +} +--EXPECTF-- +string(40) "The instance wasn't initialized properly" -- cgit v1.2.1