From 683b4f7a2be0479182f229cf84f502d19bd792d9 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 21 Jul 2012 00:46:32 +0800 Subject: [PATCH 01/61] 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 1483dc430e5..cb34294fea6 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); }; ?> From cc30524c89fa2255944dc3c70f8d41a6c23faa2a Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 21 Jul 2012 23:26:18 +0800 Subject: [PATCH 02/61] 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 902185cffe9..e6b51a91403 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 eecd483ba77..a46b7d4e48d 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; From ead076bac613bc69d83ab65be2efb68feada912c Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 21 Jul 2012 23:27:09 +0800 Subject: [PATCH 03/61] 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 9a9c5733272..2da832b8ed2 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=== From 777b6679a41abe40c4211c2f2a906a5218680872 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 21 Jul 2012 23:30:32 +0800 Subject: [PATCH 04/61] 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 00000000000..4e4be94491e --- /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) 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: [PATCH 05/61] merge 5.3.15 NEWS --- NEWS | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 71 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index e6b51a91403..8f5512367a1 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: From 5799ebdb0cafb2de1dbb18cfe780976c98dbaeac Mon Sep 17 00:00:00 2001 From: Rasmus Lerdorf Date: Tue, 24 Jul 2012 16:28:49 -0700 Subject: [PATCH 06/61] 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 d24dcccc9af..f56b9cfbd14 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; } From ef7286a42f0d85cc359f1d64678f859d6c3f832e Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 28 Jul 2012 00:50:45 +0800 Subject: [PATCH 07/61] 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 8f5512367a1..5aa35d7e20b 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 1d0ada7a64d..e3fc576e910 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 9b2e453dd65..266162747e0 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 adaedcf1aac..d1955a88ef8 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 { From b477a84026a39a58452af9676b4b74607e83e2f8 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 28 Jul 2012 17:00:05 +0800 Subject: [PATCH 08/61] 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 e3fc576e910..15a48fad8c6 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 266162747e0..c92bf2b107e 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 d1955a88ef8..02a2a39500a 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 { From 068fc008c6828c2e045064a831ecb90136c6365b Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sat, 28 Jul 2012 19:05:13 -0300 Subject: [PATCH 09/61] - 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 36c5e392ebc..0c82898e438 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(); } From 015ee3b2c88d3e7bf984c7414b4de6c2a465b6a9 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sun, 29 Jul 2012 12:17:43 +0800 Subject: [PATCH 10/61] 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 b78fceb0da5..5268789df67 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') { From 880a6cee0068e980fd1eed735675d9b7d37968a0 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sun, 29 Jul 2012 13:25:31 +0800 Subject: [PATCH 11/61] 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 9947e15dbcf..3c1c7887c2f 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 45788a41b43..e1a4cc034e2 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 ae84cd9d1dd..78876c7c803 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: [PATCH 12/61] 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 89374e73537..99e2f7929ca 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: [PATCH 13/61] 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 .../tests/dateformat_parse_localtime_parsepos.phpt | 0 .../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 .../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 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: [PATCH 14/61] 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 a466b05c242..3ab0078d709 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: [PATCH 15/61] 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 00000000000..804dece4157 --- /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) From 10642aa9e4f1eb694a8f7b514cc234cb24545744 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Wed, 1 Aug 2012 20:23:30 +0800 Subject: [PATCH 16/61] 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 5aa35d7e20b..b836d4f6800 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 e98652ba232..23c90449811 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 00000000000..721d484c713 --- /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) From 433089ccb4d4747a01d522e8678664ff17584615 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 2 Aug 2012 12:30:07 +0800 Subject: [PATCH 17/61] 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 b836d4f6800..97fc6d626d6 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 5a02ecdfaef..bc5206c12c7 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) { From cd896d69d90c70fd13efec315fd8b1f6647497b9 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 2 Aug 2012 12:52:11 +0800 Subject: [PATCH 18/61] 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 97fc6d626d6..05a80eb6e70 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 6b3ba3bb1ba..4035b2b910a 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); } /* }}} */ From 9a690859f6491dd5c14dfd6c907a5563c8aedd17 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 2 Aug 2012 19:14:06 +0800 Subject: [PATCH 19/61] 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 92d6fc5b2a3..0eb9dc519a9 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"]=> From 2b6ac9e1a0ce6efddba9d513b99a67f8e5d43764 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 2 Aug 2012 19:31:34 +0800 Subject: [PATCH 20/61] 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 4b96bf72e97..eb70995a255 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) - From 49b202f2cfe04d577671b685b7c0d3a096a433c7 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 2 Aug 2012 22:16:46 +0800 Subject: [PATCH 21/61] 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 23c90449811..593a0506b01 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 721d484c713..feb67f614be 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) From 03a1fcabf31210d3f304bfacf5096ce43c2b8f93 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 4 Aug 2012 10:41:26 +0800 Subject: [PATCH 22/61] 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 05a80eb6e70..c22d7c2fd42 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 6d2ccd2c69f..16a940dcac3 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 0a2a5955572..ddd84fa5847 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; \ From f4a315fce2658a5338486e17ee11d77bd3dcb14b Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 4 Aug 2012 11:03:21 +0800 Subject: [PATCH 23/61] 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 16a940dcac3..56182138a89 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; } From 228c2886869e7f50a272f163cb3b765a65fd40eb Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sun, 5 Aug 2012 12:40:59 +0800 Subject: [PATCH 24/61] 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 664ffea5cb4..bede8ba1c1c 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 bfd65769521..af062dbcf13 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 20c24a02143..934add47216 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 3d5b7fe7841..959c6e0a946 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 65388163dc5..f48df3776d4 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 40b544191d1..ef5d02ccc8b 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 fc47174d2bd..bd49565c836 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 11201ac989d..9b4a65c54c2 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 6e46289227d..545201e3894 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 f17784c355f..5cc9cb415a8 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 158c049b147..74dc6619c16 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 3e65f5a124f..03112c18bed 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 6e03554d96c..23fe5879a92 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 8d21c813a4e..9246a630c69 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 acce57415c6..10c56342e95 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 8960ea7171f..409273db6c6 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 7cba216395f..9e7ad6c741c 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 292e5af668f..28412928b63 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 69197f2b4b9..3aaba359f5f 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 b661cb61c1b..73a1d7648a5 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 20ff78e2824..f29a8d6247f 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 1945e31f16a..1b50c4204a9 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 89990a7af1f..6f48dfa63d9 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 661fef42c1d..ceea8508bd0 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 d6faded9cc3..57658dddd97 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 7217d336e2d..71aa0b01be2 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 ffda9565bd0..b2437776a10 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 d0d5552f167..91a5c9ea7d6 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 00177d4ff55..7c94da116cb 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 25b147e1940..e4912844de6 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 cfc7d0e43a0..c98a84027a5 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 e6c9dee4aec..deb02c25db0 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 bbd9637d242..bc214141f4c 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 d142a5d7428..22fed0af57b 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 10bebdccef1..4294c3d3263 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 35d3ae4e9cf..47688e7b6a1 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 5e94bf6ff5e..8982706e5fe 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 bed0b1df31c..0e5e8f1d075 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 67ccfc1e047..2cf18f823c0 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 bf333c773cf..b5499b1ef55 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 829f2986e99..6d514891df3 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 2769b01f2fb..3454e162399 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 3da9631dfb1..6a053e694cd 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 561826bd784..e8892a3dab6 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 a8779392b6d..2fdc23daade 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 86a1c1444c1..dc3bdf8bc30 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 80059a9da26..ea76bb21f6c 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 1cd8f96f2d3..5a5dacff52b 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 1c1b4798813..f5651e2d783 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 5a63da874c2..ca92c728804 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 9ef1221a289..966ca1a40c0 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 59116907a59..49cb062e540 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 95738548231..34244d844e1 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 83c22f58f8f..f6677cc04b9 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 5cf36822770..16961a1e46e 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 2c738d7bfb3..93ea37a9afa 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 2480be41293..d498072fa29 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 a8a88a95fe4..c4d5514ade0 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 bf9b390defc..bc6829cba58 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 1a8b9168ccf..fb6f72ac221 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 1d985090645..f91b11b3d5e 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 fcc9d646559..b931176e500 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 5b694d6e2de..b10bcb3a535 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 70933236171..0186b125299 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 667d5c243cd..b6a0b488f66 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 956ea1c050b..b85b2f716bd 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 717e56996fa..cde41f7cddb 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 2bdb145c6e3..13de43f426b 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 370098014d1..8dbf144618b 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 712af40bf3e..8b0499b4b4d 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 233e2e2a490..ce8cda46423 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 19aea455639..3d867070ab5 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 9adafa2b30d..8c72e470564 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 d0744dea1dc..987a04ea991 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 45e2bfc25ee..bf87cd96886 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 bf50c6e8016..1c61ceb6022 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 b85c1eb497f..f19c88b5950 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 24464c9beb4..4a676028b24 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 767971ee91e..8d60ce2f7c0 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 9b383de4131..da4e58b49a4 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 a8097b0886c..9c5a14d5126 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 577800885b1..5871f327a2d 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 0afc17929f3..61f9b1bfc18 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 ac36485837b..6d025aec298 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 de6960c2444..9b38bccd4fe 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 13c305d2f3e..4995da74ef2 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 58f6fffa00a..2459312dc5e 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 8593e317664..58611080dae 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 34a49ded4df..bf1cf7f2447 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 f2482b92197..d1cb2a4c63e 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 1990a2b0083..48771efc8f7 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 1a2cc2cd23d..1ab4e200326 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 aff2087522c..c30a366e378 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 36e3206d668..88312c4061b 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 d47a2898e60..36cf2713cb4 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 6feee422b4c..81e528130c1 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 e1308956fef..b9bf58922fe 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 c73c98ec816..2f125405896 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 3450c84bbd1..c0648c49534 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: [PATCH 25/61] 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 fa6c55769e2..d8965833132 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 From a239658b9ed06008ca0cbb69c4d85fdfa506c01c Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Sun, 5 Aug 2012 20:31:08 -0700 Subject: [PATCH 26/61] fix for #62460 --- NEWS | 1 + 1 file changed, 1 insertion(+) diff --git a/NEWS b/NEWS index c22d7c2fd42..70cbe8ed833 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) From ed793b2a3f857fd49c0c1b036062140da5b3e674 Mon Sep 17 00:00:00 2001 From: Matt Ficken Date: Mon, 6 Aug 2012 14:07:42 +0200 Subject: [PATCH 27/61] 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. --- .../symfony_format_type_int32_intl1.phpt | 49 +++++++++++++++++++ .../symfony_format_type_int32_intl2.phpt | 33 +++++++++++++ .../symfony_format_type_int32_intl3.phpt | 32 ++++++++++++ .../symfony_format_type_int32_intl4.phpt | 30 ++++++++++++ .../symfony_format_type_int32_intl5.phpt | 30 ++++++++++++ .../symfony_format_type_int32_intl6.phpt | 32 ++++++++++++ .../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 00000000000..2867b35690b --- /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 00000000000..6a65a0a8092 --- /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 00000000000..5e657db419b --- /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 00000000000..54043d92e92 --- /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 00000000000..d5f78d7119b --- /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 00000000000..fa708799d13 --- /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 00000000000..5bbe4266770 --- /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 == From c4b26cc1b0b0521c75e653fffec2a9e3b4bf8cbb Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Thu, 9 Aug 2012 14:02:33 -0400 Subject: [PATCH 28/61] 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 d61ba796ab5..eee3b5f887d 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 5bcb234762e..727d1bcef38 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 a379111021e..236859686f5 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 { From 7130887719684cff57cb904a6f1b2de5016a00c8 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sat, 11 Aug 2012 00:22:52 +0800 Subject: [PATCH 29/61] 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 b1da27f2520..24e4b2749c8 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: [PATCH 30/61] 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 faf87ab3c16..96f94bcf4c1 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 4b300c4717d..cd979a1c8b1 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: [PATCH 31/61] Fixed bug #62795 (Zip extension version not defined) --- .gitattributes | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitattributes b/.gitattributes index d53e569db14..862575bbb8e 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 From 4970926e4543c15e16b0c047d85dddfb4c09b581 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sun, 12 Aug 2012 20:58:09 +0800 Subject: [PATCH 32/61] 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 70cbe8ed833..985e27456c5 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 00000000000..50c27bdf35e --- /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 99831a1f421..4858b6e375d 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(); } /* }}} */ From 9bc1af1e5855c8cfc6886b5aaedbcb86a2ef42d7 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 13 Aug 2012 21:44:50 +0200 Subject: [PATCH 33/61] 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 => mcrypt_cfb.phpt} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename ext/mcrypt/tests/{mcrypt_cbf.phpt => mcrypt_cfb.phpt} (91%) diff --git a/ext/mcrypt/tests/mcrypt_cbf.phpt b/ext/mcrypt/tests/mcrypt_cfb.phpt similarity index 91% rename from ext/mcrypt/tests/mcrypt_cbf.phpt rename to ext/mcrypt/tests/mcrypt_cfb.phpt index 8ec3cd7d3e0..54919c85897 100644 --- a/ext/mcrypt/tests/mcrypt_cbf.phpt +++ b/ext/mcrypt/tests/mcrypt_cfb.phpt @@ -1,5 +1,5 @@ --TEST-- -mcrypt_cbf +mcrypt_cfb --SKIPIF-- --FILE-- @@ -8,7 +8,7 @@ $key = "FooBar"; $secret = "PHP Testfest 2008"; $cipher = MCRYPT_RIJNDAEL_128; -$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher, MCRYPT_MODE_ECB), MCRYPT_RAND); +$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher, MCRYPT_MODE_CFB), MCRYPT_RAND); $enc_data = mcrypt_cfb($cipher, $key, $secret, MCRYPT_ENCRYPT, $iv); // we have to trim as AES rounds the blocks and decrypt doesnt detect that @@ -20,4 +20,4 @@ mcrypt_cfb($cipher, $key, $enc_data, MCRYPT_DECRYPT); --EXPECTF-- PHP Testfest 2008 -Warning: mcrypt_cfb(): Attempt to use an empty IV, which is NOT recommend in %s on line %d \ No newline at end of file +Warning: mcrypt_cfb(): Attempt to use an empty IV, which is NOT recommend in %s on line %d From 7aed2390503bfe91c91eec67ed0c88b12ff3612c Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 13 Aug 2012 21:46:15 +0200 Subject: [PATCH 34/61] 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 cf6456fef71..1aa48868b04 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: [PATCH 35/61] 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 63cf0a9daf5..be01998fd8e 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 From a5a409ebff1037f4b00fdf6d46dd61c72cb6d315 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Wed, 15 Aug 2012 00:44:47 +0800 Subject: [PATCH 36/61] 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 985e27456c5..c7afe53d94e 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 17af624998b..c187e26818b 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 \ From 8848778a59ddde777258261a3888baeb3a70dea1 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Wed, 15 Aug 2012 01:06:10 +0800 Subject: [PATCH 37/61] 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 44d3a4e6a96..7147e982581 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) From 8c3bf96022ff6fb6be1e7bc87b794cab9e9bf90c Mon Sep 17 00:00:00 2001 From: Christopher Jones Date: Tue, 14 Aug 2012 11:41:36 -0700 Subject: [PATCH 38/61] 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 0f03c3a65fa..9a86c468684 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 21aca6cc126..ebbbb31facc 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: [PATCH 39/61] 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 8bb28733fee..edb2a12ff0a 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 4c6241ccfd2..fea77754d17 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 14d58788560..2bc2f142463 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"); } From 8649e4236b12ce9b90356a5804be96bd1f67bcd6 Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Thu, 16 Aug 2012 14:32:55 +0400 Subject: [PATCH 40/61] 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 c7afe53d94e..8da72560173 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 0126d9ef4ed..dcc39e267b2 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) { From 9cf0139460c7531ebe8fdd523ba6cf7067a7f282 Mon Sep 17 00:00:00 2001 From: Pierrick Charron Date: Thu, 16 Aug 2012 14:48:44 -0400 Subject: [PATCH 41/61] 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 8da72560173..7f5c48b2aae 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 94be60fd5d5..7b728730382 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 00000000000..39e6fc9cbe9 --- /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! From 1a23d42909070269d53fc7500d683e88ba219cb3 Mon Sep 17 00:00:00 2001 From: Matt Ficken Date: Fri, 17 Aug 2012 20:29:08 +0200 Subject: [PATCH 42/61] More intl tests extracted from symfony --- .../symfony_format_type_double_intl1.phpt | 30 ++++++++++++ .../symfony_format_type_double_intl2.phpt | 30 ++++++++++++ .../symfony_format_type_double_intl3.phpt | 30 ++++++++++++ .../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 00000000000..13a7ad761fa --- /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 00000000000..6bff7cc3557 --- /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 00000000000..3b0d576df7d --- /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 00000000000..3476e108923 --- /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 00000000000..2867b35690b --- /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 00000000000..6a65a0a8092 --- /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 00000000000..5e657db419b --- /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 00000000000..54043d92e92 --- /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 00000000000..d5f78d7119b --- /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 00000000000..fa708799d13 --- /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 00000000000..5bbe4266770 --- /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 00000000000..01f58209117 --- /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 00000000000..13d1cdaee7f --- /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 00000000000..a7c80b34c3c --- /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 00000000000..f1a0801edfe --- /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 00000000000..dad8735b89a --- /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 00000000000..f038cbd0c3c --- /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 00000000000..9c8853cafc8 --- /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 00000000000..50524976abf --- /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 == From 46a3f257724df7b85cc8c3e6374c36ed9ee783b4 Mon Sep 17 00:00:00 2001 From: Reeze Xia Date: Sun, 19 Aug 2012 17:57:45 +0800 Subject: [PATCH 43/61] 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 e8a457052ec..d9e6a289b45 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 00000000000..6426a80fb86 --- /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" From 8b87c6df8408b95a1bfae4a82958a48e3a220b5a Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Sun, 19 Aug 2012 18:33:06 +0800 Subject: [PATCH 44/61] Update NEWS --- NEWS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NEWS b/NEWS index 7f5c48b2aae..b796117fddc 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: From dc1138b102b8fde7a119cb8f7ceb30b26dfdf6b3 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 19 Aug 2012 12:13:48 -0300 Subject: [PATCH 45/61] - 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 979274176b4..33002fa1eea 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); } } } From 001966c754f67f36871507e70e2ec1af5a9816bd Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 19 Aug 2012 12:44:44 -0300 Subject: [PATCH 46/61] - 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 56182138a89..70cf0c7af87 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. From 6cd0e446dd93b5232b49c6248102b77b17865904 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 19 Aug 2012 12:55:38 -0300 Subject: [PATCH 47/61] - 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 4f8edb5211a..8c1810ef71d 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 From 50ab6c63a700155b8d6be361eac29eae2bc6d869 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 19 Aug 2012 14:34:38 -0300 Subject: [PATCH 48/61] - 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 1a7bd1e0b47..68bf3fecfca 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; } } From 3dd256a67b61a995b580cce762a46be689ea34b1 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 19 Aug 2012 14:50:49 -0300 Subject: [PATCH 49/61] - 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 18c300c51cf..2525afb905d 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; From f4054afe40bd2b1876832b01f6cbae8f8236d2aa Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 19 Aug 2012 15:09:14 -0300 Subject: [PATCH 50/61] - 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 9797ec8250a..cc4457493b0 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 */ From b9a050100ce430db758ff791914e88478b2814b8 Mon Sep 17 00:00:00 2001 From: Popa Adrian Marius Date: Mon, 20 Aug 2012 16:56:37 +0300 Subject: [PATCH 51/61] 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 a35138a07ff..70f8887111c 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(); ?> From 0cdc1f5626bd400278aa193867e1fd4fe3f771d4 Mon Sep 17 00:00:00 2001 From: Reeze Xia Date: Tue, 21 Aug 2012 14:32:39 +0800 Subject: [PATCH 52/61] Move test files to tests dir There are 7 files duplicated, so those files was deleted --- 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 ------------ .../symfony_format_type_double_intl1.phpt | 0 .../symfony_format_type_double_intl2.phpt | 0 .../symfony_format_type_double_intl3.phpt | 0 .../symfony_format_type_double_intl4.phpt | 0 .../symfony_format_type_int64_intl1.phpt | 0 .../symfony_format_type_int64_intl2.phpt | 0 .../symfony_format_type_int64_intl3.phpt | 0 .../symfony_format_type_int64_intl4.phpt | 0 .../symfony_format_type_int64_intl5.phpt | 0 .../symfony_format_type_int64_intl6.phpt | 0 .../symfony_format_type_int64_intl7.phpt | 0 .../symfony_format_type_int64_intl8.phpt | 0 19 files changed, 238 deletions(-) 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 rename ext/intl/{ => tests}/symfony_format_type_double_intl1.phpt (100%) rename ext/intl/{ => tests}/symfony_format_type_double_intl2.phpt (100%) rename ext/intl/{ => tests}/symfony_format_type_double_intl3.phpt (100%) rename ext/intl/{ => tests}/symfony_format_type_double_intl4.phpt (100%) rename ext/intl/{ => tests}/symfony_format_type_int64_intl1.phpt (100%) rename ext/intl/{ => tests}/symfony_format_type_int64_intl2.phpt (100%) rename ext/intl/{ => tests}/symfony_format_type_int64_intl3.phpt (100%) rename ext/intl/{ => tests}/symfony_format_type_int64_intl4.phpt (100%) rename ext/intl/{ => tests}/symfony_format_type_int64_intl5.phpt (100%) rename ext/intl/{ => tests}/symfony_format_type_int64_intl6.phpt (100%) rename ext/intl/{ => tests}/symfony_format_type_int64_intl7.phpt (100%) rename ext/intl/{ => tests}/symfony_format_type_int64_intl8.phpt (100%) 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 2867b35690b..00000000000 --- 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 6a65a0a8092..00000000000 --- 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 5e657db419b..00000000000 --- 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 54043d92e92..00000000000 --- 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 d5f78d7119b..00000000000 --- 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 fa708799d13..00000000000 --- 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 5bbe4266770..00000000000 --- 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_double_intl1.phpt b/ext/intl/tests/symfony_format_type_double_intl1.phpt similarity index 100% rename from ext/intl/symfony_format_type_double_intl1.phpt rename to ext/intl/tests/symfony_format_type_double_intl1.phpt diff --git a/ext/intl/symfony_format_type_double_intl2.phpt b/ext/intl/tests/symfony_format_type_double_intl2.phpt similarity index 100% rename from ext/intl/symfony_format_type_double_intl2.phpt rename to ext/intl/tests/symfony_format_type_double_intl2.phpt diff --git a/ext/intl/symfony_format_type_double_intl3.phpt b/ext/intl/tests/symfony_format_type_double_intl3.phpt similarity index 100% rename from ext/intl/symfony_format_type_double_intl3.phpt rename to ext/intl/tests/symfony_format_type_double_intl3.phpt diff --git a/ext/intl/symfony_format_type_double_intl4.phpt b/ext/intl/tests/symfony_format_type_double_intl4.phpt similarity index 100% rename from ext/intl/symfony_format_type_double_intl4.phpt rename to ext/intl/tests/symfony_format_type_double_intl4.phpt diff --git a/ext/intl/symfony_format_type_int64_intl1.phpt b/ext/intl/tests/symfony_format_type_int64_intl1.phpt similarity index 100% rename from ext/intl/symfony_format_type_int64_intl1.phpt rename to ext/intl/tests/symfony_format_type_int64_intl1.phpt diff --git a/ext/intl/symfony_format_type_int64_intl2.phpt b/ext/intl/tests/symfony_format_type_int64_intl2.phpt similarity index 100% rename from ext/intl/symfony_format_type_int64_intl2.phpt rename to ext/intl/tests/symfony_format_type_int64_intl2.phpt diff --git a/ext/intl/symfony_format_type_int64_intl3.phpt b/ext/intl/tests/symfony_format_type_int64_intl3.phpt similarity index 100% rename from ext/intl/symfony_format_type_int64_intl3.phpt rename to ext/intl/tests/symfony_format_type_int64_intl3.phpt diff --git a/ext/intl/symfony_format_type_int64_intl4.phpt b/ext/intl/tests/symfony_format_type_int64_intl4.phpt similarity index 100% rename from ext/intl/symfony_format_type_int64_intl4.phpt rename to ext/intl/tests/symfony_format_type_int64_intl4.phpt diff --git a/ext/intl/symfony_format_type_int64_intl5.phpt b/ext/intl/tests/symfony_format_type_int64_intl5.phpt similarity index 100% rename from ext/intl/symfony_format_type_int64_intl5.phpt rename to ext/intl/tests/symfony_format_type_int64_intl5.phpt diff --git a/ext/intl/symfony_format_type_int64_intl6.phpt b/ext/intl/tests/symfony_format_type_int64_intl6.phpt similarity index 100% rename from ext/intl/symfony_format_type_int64_intl6.phpt rename to ext/intl/tests/symfony_format_type_int64_intl6.phpt diff --git a/ext/intl/symfony_format_type_int64_intl7.phpt b/ext/intl/tests/symfony_format_type_int64_intl7.phpt similarity index 100% rename from ext/intl/symfony_format_type_int64_intl7.phpt rename to ext/intl/tests/symfony_format_type_int64_intl7.phpt diff --git a/ext/intl/symfony_format_type_int64_intl8.phpt b/ext/intl/tests/symfony_format_type_int64_intl8.phpt similarity index 100% rename from ext/intl/symfony_format_type_int64_intl8.phpt rename to ext/intl/tests/symfony_format_type_int64_intl8.phpt From 92153dcfe3f7643526572439622408d94fd4aa14 Mon Sep 17 00:00:00 2001 From: Anatoliy Belsky Date: Tue, 21 Aug 2012 13:22:00 +0200 Subject: [PATCH 53/61] 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 00000000000..560945f9dd8 --- /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: [PATCH 54/61] 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 c2685a572e9..474065faf14 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: [PATCH 55/61] - 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 f7d08da4ab9..7b7d559811a 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 0335615ea47..d19f30c612e 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 7e74ed60f3f..ccfe2a5886d 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 917734c992a..43d1ede2384 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 ced975cb384..3372622552d 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); } From e5bdd2c0eeab50dc1f863dae9a32d3857ece6a79 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Wed, 22 Aug 2012 13:41:47 +0800 Subject: [PATCH 56/61] 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 b796117fddc..3d156c17885 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 fbfc02e2fc7..0ef67a2c44a 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 00000000000..9fb0aa0f030 --- /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 From a5d0c1e21b9fa166d8fe5ec7d52a24a5f7adc107 Mon Sep 17 00:00:00 2001 From: Gustavo Lopes Date: Tue, 21 Aug 2012 23:21:59 +0200 Subject: [PATCH 57/61] 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 +++++++- .../resourcebundle/resourcebundle_class.c | 9 +++++++- .../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 835abd66c8a..7a56dfce508 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 0f0cc193e4c..b2a9968af49 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 b399a39fcb5..8aded18bd64 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 6131cedc956..b8c5f25e3aa 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 eb3f5f4e770..85a67f7f9fc 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 9ad83ee3d63..d58abe42f58 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 0bb5894f096..5790f0c2e19 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 cf1cb060c6d..95828666643 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 8fa17560b89..5cb64833260 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 0a01204fae9..e3fb9425a9c 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 7ed28df3dc5..9cccef27093 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 b6b8e33226e..337e04e647d 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 d2a29d9b25c..9c0459e1a3e 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 4755d723b8a..8da3ed9d474 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 00000000000..5e12b96ae81 --- /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 00000000000..ef7b28a5465 --- /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 00000000000..48321094d1d --- /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" From ca4dd76160568ea30227469535431df12f4f5c27 Mon Sep 17 00:00:00 2001 From: Gustavo Lopes Date: Wed, 22 Aug 2012 23:04:46 +0200 Subject: [PATCH 58/61] Update NEWS given a5d0c1e2 --- NEWS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS b/NEWS index 3d156c17885..8492aa6c6b0 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) From 6a8db0c0815b0458a8db3b213487198cc5288875 Mon Sep 17 00:00:00 2001 From: Philip Olson Date: Wed, 22 Aug 2012 23:33:29 -0700 Subject: [PATCH 59/61] Updated INSTALL. Generated from the XML Docs. --- INSTALL | 202 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 128 insertions(+), 74 deletions(-) diff --git a/INSTALL b/INSTALL index b493f3c29be..c0cbe5f2c15 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 From eca4fc69918c856966298435bd1133e55a3c8e58 Mon Sep 17 00:00:00 2001 From: Anatoliy Belsky Date: Thu, 23 Aug 2012 13:32:06 +0200 Subject: [PATCH 60/61] 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 9cccef27093..36d06d2d365 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; } From 13bcf685cb0a92e502ebe39f4b22c64304a9f333 Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Thu, 23 Aug 2012 23:27:16 +0800 Subject: [PATCH 61/61] 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 8492aa6c6b0..9af7977feed 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 ee8f51eb33f..0aac6d3f30e 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 00000000000..7e392da9abb --- /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"