diff options
-rw-r--r-- | bug71914.patch | 192 | ||||
-rw-r--r-- | bug72564.patch | 67 | ||||
-rw-r--r-- | failed.txt | 12 | ||||
-rw-r--r-- | php-5.6.3-datetests.patch | 23 | ||||
-rw-r--r-- | php-7.0.10-datetests.patch | 68 | ||||
-rw-r--r-- | php.spec | 12 |
6 files changed, 78 insertions, 296 deletions
diff --git a/bug71914.patch b/bug71914.patch deleted file mode 100644 index f52389e..0000000 --- a/bug71914.patch +++ /dev/null @@ -1,192 +0,0 @@ -From 2e6d70787c93413daecbea529bf0f74fa901d1db Mon Sep 17 00:00:00 2001 -From: Xinchen Hui <laruence@gmail.com> -Date: Tue, 29 Mar 2016 17:14:36 +0800 -Subject: [PATCH] Fixed bug #71914 (Reference is lost in "switch") - ---- - NEWS | 1 + - Zend/tests/bug71914.phpt | 25 +++++++++++++++++++++++++ - Zend/zend_vm_def.h | 2 +- - Zend/zend_vm_execute.h | 18 +++++++++--------- - 4 files changed, 36 insertions(+), 10 deletions(-) - create mode 100644 Zend/tests/bug71914.phpt - -diff --git a/Zend/tests/bug71914.phpt b/Zend/tests/bug71914.phpt -new file mode 100644 -index 0000000..8f825f8 ---- /dev/null -+++ b/Zend/tests/bug71914.phpt -@@ -0,0 +1,25 @@ -+--TEST-- -+Bug #71914 (Reference is lost in "switch") -+--FILE-- -+<?php -+ -+function bug(&$value) { -+ switch ($value) { -+ case "xxxx": -+ $value = true; -+ break; -+ } -+} -+ -+ -+function test($arr, &$dummy) { -+ bug($arr["str"]); -+ var_dump($arr["str"]); -+} -+ -+ -+$array = array("str" => "xxxx"); -+test($array, $array["str"]); -+?> -+--EXPECT-- -+bool(true) -diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h -index 2c721c3..8e658f5 100644 ---- a/Zend/zend_vm_def.h -+++ b/Zend/zend_vm_def.h -@@ -4903,7 +4903,7 @@ ZEND_VM_HANDLER(48, ZEND_CASE, CONST|TMPVAR|CV, CONST|TMPVAR|CV) - SAVE_OPLINE(); - if (OP1_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R); -- } else if ((OP1_TYPE & (IS_VAR|IS_CV)) && UNEXPECTED(Z_ISREF_P(op1))) { -+ } else if ((OP1_TYPE & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) { - /* Don't keep lock on reference, lock the value instead */ - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) { - ZVAL_UNREF(op1); -diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h -index c719aa2..bdc1bd7 100644 ---- a/Zend/zend_vm_execute.h -+++ b/Zend/zend_vm_execute.h -@@ -5858,7 +5858,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CONST_CONST_HANDLER( - SAVE_OPLINE(); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R); -- } else if ((IS_CONST & (IS_VAR|IS_CV)) && UNEXPECTED(Z_ISREF_P(op1))) { -+ } else if ((IS_CONST & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) { - /* Don't keep lock on reference, lock the value instead */ - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) { - ZVAL_UNREF(op1); -@@ -9654,7 +9654,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CONST_CV_HANDLER(ZEN - SAVE_OPLINE(); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R); -- } else if ((IS_CONST & (IS_VAR|IS_CV)) && UNEXPECTED(Z_ISREF_P(op1))) { -+ } else if ((IS_CONST & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) { - /* Don't keep lock on reference, lock the value instead */ - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) { - ZVAL_UNREF(op1); -@@ -11428,7 +11428,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CONST_TMPVAR_HANDLER - SAVE_OPLINE(); - if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R); -- } else if ((IS_CONST & (IS_VAR|IS_CV)) && UNEXPECTED(Z_ISREF_P(op1))) { -+ } else if ((IS_CONST & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) { - /* Don't keep lock on reference, lock the value instead */ - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) { - ZVAL_UNREF(op1); -@@ -32184,7 +32184,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CV_CONST_HANDLER(ZEN - SAVE_OPLINE(); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R); -- } else if ((IS_CV & (IS_VAR|IS_CV)) && UNEXPECTED(Z_ISREF_P(op1))) { -+ } else if ((IS_CV & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) { - /* Don't keep lock on reference, lock the value instead */ - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) { - ZVAL_UNREF(op1); -@@ -37280,7 +37280,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CV_CV_HANDLER(ZEND_O - SAVE_OPLINE(); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R); -- } else if ((IS_CV & (IS_VAR|IS_CV)) && UNEXPECTED(Z_ISREF_P(op1))) { -+ } else if ((IS_CV & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) { - /* Don't keep lock on reference, lock the value instead */ - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) { - ZVAL_UNREF(op1); -@@ -39873,7 +39873,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_CV_TMPVAR_HANDLER(ZE - SAVE_OPLINE(); - if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R); -- } else if ((IS_CV & (IS_VAR|IS_CV)) && UNEXPECTED(Z_ISREF_P(op1))) { -+ } else if ((IS_CV & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) { - /* Don't keep lock on reference, lock the value instead */ - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) { - ZVAL_UNREF(op1); -@@ -42108,7 +42108,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_CONST_HANDLER - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R); -- } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && UNEXPECTED(Z_ISREF_P(op1))) { -+ } else if (((IS_TMP_VAR|IS_VAR) & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) { - /* Don't keep lock on reference, lock the value instead */ - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) { - ZVAL_UNREF(op1); -@@ -44256,7 +44256,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_CV_HANDLER(ZE - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R); -- } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && UNEXPECTED(Z_ISREF_P(op1))) { -+ } else if (((IS_TMP_VAR|IS_VAR) & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) { - /* Don't keep lock on reference, lock the value instead */ - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) { - ZVAL_UNREF(op1); -@@ -45403,7 +45403,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CASE_SPEC_TMPVAR_TMPVAR_HANDLE - SAVE_OPLINE(); - if ((IS_TMP_VAR|IS_VAR) == IS_CV && UNEXPECTED(Z_TYPE_P(op1) == IS_UNDEF)) { - op1 = GET_OP1_UNDEF_CV(op1, BP_VAR_R); -- } else if (((IS_TMP_VAR|IS_VAR) & (IS_VAR|IS_CV)) && UNEXPECTED(Z_ISREF_P(op1))) { -+ } else if (((IS_TMP_VAR|IS_VAR) & IS_VAR) && UNEXPECTED(Z_ISREF_P(op1))) { - /* Don't keep lock on reference, lock the value instead */ - if (UNEXPECTED(Z_REFCOUNT_P(op1) == 1)) { - ZVAL_UNREF(op1); --- -2.1.4 - -From 256593abcf0452d2a95cc1869baeeaea0d72d2a7 Mon Sep 17 00:00:00 2001 -From: Xinchen Hui <laruence@gmail.com> -Date: Tue, 29 Mar 2016 17:52:58 +0800 -Subject: [PATCH] Update tests - ---- - Zend/tests/bug71914.phpt | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/Zend/tests/bug71914.phpt b/Zend/tests/bug71914.phpt -index 8f825f8..a43eb56 100644 ---- a/Zend/tests/bug71914.phpt -+++ b/Zend/tests/bug71914.phpt -@@ -11,15 +11,30 @@ function bug(&$value) { - } - } - -+function returnArray() { -+ $array = array(); -+ $array["str"] = "xxxx"; -+ return $array; -+} -+ -+class Foo { -+ public $array = array("str" => "xxxx"); -+} - - function test($arr, &$dummy) { - bug($arr["str"]); - var_dump($arr["str"]); - } - -+$foo = new Foo(); -+$arr = returnArray(); - - $array = array("str" => "xxxx"); - test($array, $array["str"]); -+test($arr, $arr["str"]); -+test($foo->array, $foo->array["str"]); - ?> - --EXPECT-- - bool(true) -+bool(true) -+bool(true) --- -2.1.4 - diff --git a/bug72564.patch b/bug72564.patch deleted file mode 100644 index 4d7e5c1..0000000 --- a/bug72564.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 99d6e09c3d6679bb522836c833d0cfd4f79c6014 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@php.net> -Date: Fri, 8 Jul 2016 10:46:33 +0200 -Subject: [PATCH] Fixed Bug #72564 boolean always deserialized as "true" - ---- - ext/wddx/wddx.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/ext/wddx/wddx.c b/ext/wddx/wddx.c -index 2cc3c8b..cb0c01e 100644 ---- a/ext/wddx/wddx.c -+++ b/ext/wddx/wddx.c -@@ -1013,9 +1013,9 @@ static void php_wddx_process_data(void *user_data, const XML_Char *s, int len) - - case ST_BOOLEAN: - if (!strcmp((char *)s, "true")) { -- Z_LVAL(ent->data) = 1; -+ ZVAL_TRUE(&ent->data); - } else if (!strcmp((char *)s, "false")) { -- Z_LVAL(ent->data) = 0; -+ ZVAL_FALSE(&ent->data); - } else { - zval_ptr_dtor(&ent->data); - if (ent->varname) { --- -2.1.4 - -From bfc42211d3cc5aa6cd2bdb10ef5004ce22099acb Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@php.net> -Date: Fri, 8 Jul 2016 10:45:13 +0200 -Subject: [PATCH] add test for bug #72564 (7.x regression) - ---- - ext/wddx/tests/bug72564.phpt | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) - create mode 100644 ext/wddx/tests/bug72564.phpt - -diff --git a/ext/wddx/tests/bug72564.phpt b/ext/wddx/tests/bug72564.phpt -new file mode 100644 -index 0000000..4711ef8 ---- /dev/null -+++ b/ext/wddx/tests/bug72564.phpt -@@ -0,0 +1,20 @@ -+--TEST-- -+Bug #72564: wddx deserialization of boolean -+--SKIPIF-- -+<?php if (!extension_loaded("wddx")) print "skip"; ?> -+--FILE-- -+<?php -+ foreach([true, false, NULL] as $v) { -+ $x = wddx_serialize_value($v); -+ var_dump($x, wddx_deserialize($x)); -+ } -+?> -+Done -+--EXPECT-- -+string(84) "<wddxPacket version='1.0'><header/><data><boolean value='true'/></data></wddxPacket>" -+bool(true) -+string(85) "<wddxPacket version='1.0'><header/><data><boolean value='false'/></data></wddxPacket>" -+bool(false) -+string(68) "<wddxPacket version='1.0'><header/><data><null/></data></wddxPacket>" -+NULL -+Done --- -2.1.4 - @@ -1,20 +1,14 @@ -===== 7.0.9 (2016-07-21) +===== 7.0.10RC1 (2016-08-04) $ grep -r 'Tests failed' /var/lib/mock/scl70*/build.log -/var/lib/mock/scl70el6x/build.log:Tests failed : 2 -/var/lib/mock/scl70el7x/build.log:Tests failed : 4 +/var/lib/mock/scl70el6x/build.log:Tests failed : 0 +/var/lib/mock/scl70el7x/build.log:Tests failed : 0 /var/lib/mock/scl70fc21x/build.log:Tests failed : 0 /var/lib/mock/scl70fc22x/build.log:Tests failed : 0 /var/lib/mock/scl70fc23x/build.log:Tests failed : 0 /var/lib/mock/scl70fc24x/build.log:Tests failed : 0 -el6x, el7x - Bug #33414 [2] (Comprehensive list of incorrect days returned after strotime() / date() tests) [ext/date/tests/bug33414-2.phpt] - strtotime() function (64 bit) [ext/date/tests/strtotime3-64bit.phpt] -el7x - Bug #60120 proc_open hangs with stdin/out with 2048+ bytes [ext/standard/tests/streams/proc_open_bug60120.phpt] - Bug #64438 proc_open hangs with stdin/out with 4097+ bytes [ext/standard/tests/streams/proc_open_bug64438.phpt] * proc_open give erratic test results :( diff --git a/php-5.6.3-datetests.patch b/php-5.6.3-datetests.patch deleted file mode 100644 index a29bb63..0000000 --- a/php-5.6.3-datetests.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- a/ext/date/tests/bug66985.phpt 2014-10-30 07:32:03.297693403 +0100 -+++ b/ext/date/tests/bug66985.phpt 2014-10-30 07:32:45.138877977 +0100 -@@ -3,7 +3,7 @@ - --FILE-- - <?php - $zones = array( -- "CST6CDT", "Cuba", "Egypt", "Eire", "EST5EDT", "Factory", "GB-Eire", -+ "CST6CDT", "Cuba", "Egypt", "Eire", "EST5EDT", "GB-Eire", - "GMT0", "Greenwich", "Hongkong", "Iceland", "Iran", "Israel", "Jamaica", - "Japan", "Kwajalein", "Libya", "MST7MDT", "Navajo", "NZ-CHAT", "Poland", - "Portugal", "PST8PDT", "Singapore", "Turkey", "Universal", "W-SU", -@@ -45,11 +45,6 @@ - ) - DateTimeZone Object - ( -- [timezone_type] => 3 -- [timezone] => Factory --) --DateTimeZone Object --( - [timezone_type] => 3 - [timezone] => GB-Eire - ) diff --git a/php-7.0.10-datetests.patch b/php-7.0.10-datetests.patch new file mode 100644 index 0000000..c3a65e9 --- /dev/null +++ b/php-7.0.10-datetests.patch @@ -0,0 +1,68 @@ +--- a/ext/date/tests/bug66985.phpt 2014-10-30 07:32:03.297693403 +0100 ++++ b/ext/date/tests/bug66985.phpt 2014-10-30 07:32:45.138877977 +0100 +@@ -3,7 +3,7 @@ + --FILE-- + <?php + $zones = array( +- "CST6CDT", "Cuba", "Egypt", "Eire", "EST5EDT", "Factory", "GB-Eire", ++ "CST6CDT", "Cuba", "Egypt", "Eire", "EST5EDT", "GB-Eire", + "GMT0", "Greenwich", "Hongkong", "Iceland", "Iran", "Israel", "Jamaica", + "Japan", "Kwajalein", "Libya", "MST7MDT", "Navajo", "NZ-CHAT", "Poland", + "Portugal", "PST8PDT", "Singapore", "Turkey", "Universal", "W-SU", +@@ -45,11 +45,6 @@ + ) + DateTimeZone Object + ( +- [timezone_type] => 3 +- [timezone] => Factory +-) +-DateTimeZone Object +-( + [timezone_type] => 3 + [timezone] => GB-Eire + ) +diff -up ./ext/date/tests/strtotime3-64bit.phpt.datetests ./ext/date/tests/strtotime3-64bit.phpt +--- ./ext/date/tests/strtotime3-64bit.phpt.datetests 2016-07-21 02:23:03.000000000 +0200 ++++ ./ext/date/tests/strtotime3-64bit.phpt 2016-07-26 07:39:45.713272263 +0200 +@@ -44,7 +44,7 @@ foreach ($strs as $str) { + } + + ?> +---EXPECT-- ++--EXPECTF-- + bool(false) + bool(false) + string(31) "Thu, 15 Jun 2006 00:00:00 +0100" +@@ -53,7 +53,7 @@ bool(false) + string(31) "Fri, 16 Jun 2006 23:49:12 +0100" + bool(false) + string(31) "Fri, 16 Jun 2006 02:22:00 +0100" +-string(31) "Sun, 16 Jun 0222 02:22:00 -0036" ++string(31) "Sun, 16 Jun 0222 02:22:00 %s" + string(31) "Fri, 16 Jun 2006 02:22:33 +0100" + bool(false) + string(31) "Tue, 02 Mar 2004 00:00:00 +0000" +diff -up ./ext/date/tests/bug33414-2.phpt.datetests ./ext/date/tests/bug33414-2.phpt +--- ./ext/date/tests/bug33414-2.phpt.datetests 2016-07-21 02:23:03.000000000 +0200 ++++ ./ext/date/tests/bug33414-2.phpt 2016-07-26 07:28:10.323598643 +0200 +@@ -74,7 +74,7 @@ $strtotime_tstamp = strtotime("next Frid + print "result=".date("l Y-m-d H:i:s T I", $strtotime_tstamp)."\n"; + print "wanted=Friday 00:00:00\n\n"; + ?> +---EXPECT-- ++--EXPECTF-- + TZ=Pacific/Rarotonga - wrong day. + tStamp=Thursday 1970-01-01 17:17:17 CKT 0 + result=Tuesday 1970-01-06 00:00:00 CKT 0 +@@ -106,8 +106,8 @@ result=Tuesday 2005-04-12 00:00:00 CDT 1 + wanted=Tuesday 00:00:00 + + TZ=Pacific/Pitcairn - wrong day. +-tStamp=Thursday 1970-01-01 17:17:17 PNT 0 +-result=Wednesday 1970-01-07 00:00:00 PNT 0 ++tStamp=Thursday 1970-%s ++result=Wednesday 1970-%s + wanted=Wednesday 00:00:00 + + TZ=Pacific/Fakaofo - wrong day. + @@ -124,13 +124,13 @@ %global db_devel libdb-devel %endif -#global rcver RC1 +%global rcver RC1 %global rpmrel 1 Summary: PHP scripting language for creating dynamic web sites Name: %{?scl_prefix}php -Version: 7.0.9 +Version: 7.0.10 Release: %{?rcver:0.}%{rpmrel}%{?rcver:.%{rcver}}%{?dist} # All files licensed under PHP version 3.01, except # Zend is licensed under Zend @@ -183,13 +183,12 @@ Patch47: php-5.6.3-phpinfo.patch Patch91: php-5.6.3-oci8conf.patch # Upstream fixes (100+) -Patch100: bug72564.patch # Security fixes (200+) # Fixes for tests (300+) # Factory is droped from system tzdata -Patch300: php-5.6.3-datetests.patch +Patch300: php-7.0.10-datetests.patch # Revert changes for pcre < 8.34 Patch301: php-7.0.0-oldpcre.patch @@ -895,7 +894,6 @@ support for JavaScript Object Notation (JSON) to PHP. %patch91 -p1 -b .remi-oci8 # upstream patches -%patch100 -p1 -b .bug72564 # security patches @@ -1826,6 +1824,10 @@ fi %changelog +* Wed Aug 3 2016 Remi Collet <remi@fedoraproject.org> 7.0.10-0.1.RC1 +- Update to 7.0.10RC1 +- relax 2 date tests (failing on EL with system tzdata) + * Wed Jul 20 2016 Remi Collet <remi@fedoraproject.org> 7.0.9-1 - Update to 7.0.9 - http://www.php.net/releases/7_0_9.php - wddx: add upstream patch for https://bugs.php.net/72564 |