summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--failed.txt10
-rw-r--r--php-bug78412.patch37
-rw-r--r--php.spec9
3 files changed, 49 insertions, 7 deletions
diff --git a/failed.txt b/failed.txt
index 6d1df9e..aadaf48 100644
--- a/failed.txt
+++ b/failed.txt
@@ -1,18 +1,16 @@
-===== 7.2.22RC1 (2019-08-15)
+===== 7.2.22 (2019-08-29)
$ grep -ar 'Tests failed' /var/lib/mock/scl72*/build.log
/var/lib/mock/scl72el6x/build.log:Tests failed : 0
-/var/lib/mock/scl72el7x/build.log:Tests failed : 1
+/var/lib/mock/scl72el7x/build.log:Tests failed : 0
/var/lib/mock/scl72el8x/build.log:Tests failed : 16
-/var/lib/mock/scl72fc28x/build.log:Tests failed : 0
/var/lib/mock/scl72fc29x/build.log:Tests failed : 1
/var/lib/mock/scl72fc30x/build.log:Tests failed : 1
+/var/lib/mock/scl72fc31x/build.log:Tests failed : 1
-el7x
- 1 Bug #60120 proc_open hangs with stdin/out with 2048+ bytes [ext/standard/tests/streams/proc_open_bug60120.phpt]
-fc29x, fc30x:
+fc29x, fc30x, fc31x:
TLS server rate-limits client-initiated renegotiation [ext/openssl/tests/stream_server_reneg_limit.phpt]
el8x:
buildroot issue under investigation
diff --git a/php-bug78412.patch b/php-bug78412.patch
new file mode 100644
index 0000000..f4f8b4a
--- /dev/null
+++ b/php-bug78412.patch
@@ -0,0 +1,37 @@
+From fcabe7e5e44067319f9c4123d71a7cea6a823af4 Mon Sep 17 00:00:00 2001
+From: Nikita Popov <nikita.ppv@gmail.com>
+Date: Wed, 14 Aug 2019 17:48:57 +0200
+Subject: [PATCH] Fixed bug #78412
+
+$this should only be included in the generator GC buffer, if it
+will be released on destruction.
+---
+ NEWS | 4 ++++
+ Zend/zend_generators.c | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c
+index 666a12f..042ddbc 100644
+--- a/Zend/zend_generators.c
++++ b/Zend/zend_generators.c
+@@ -271,7 +271,7 @@ static uint32_t calc_gc_buffer_size(zend_generator *generator) /* {{{ */
+ if (EX_CALL_INFO() & ZEND_CALL_FREE_EXTRA_ARGS) {
+ size += EX_NUM_ARGS() - op_array->num_args;
+ }
+- size += Z_TYPE(execute_data->This) == IS_OBJECT; /* $this */
++ size += (EX_CALL_INFO() & ZEND_CALL_RELEASE_THIS) != 0; /* $this */
+ size += (EX_CALL_INFO() & ZEND_CALL_CLOSURE) != 0; /* Closure object */
+
+ /* Live vars */
+@@ -352,7 +352,7 @@ static HashTable *zend_generator_get_gc(zval *object, zval **table, int *n) /* {
+ }
+ }
+
+- if (Z_TYPE(execute_data->This) == IS_OBJECT) {
++ if (EX_CALL_INFO() & ZEND_CALL_RELEASE_THIS) {
+ ZVAL_OBJ(gc_buffer++, Z_OBJ(execute_data->This));
+ }
+ if (EX_CALL_INFO() & ZEND_CALL_CLOSURE) {
+--
+2.1.4
+
diff --git a/php.spec b/php.spec
index 639a8a8..d8e644f 100644
--- a/php.spec
+++ b/php.spec
@@ -132,7 +132,7 @@
%endif
%global upver 7.2.22
-%global rcver RC1
+#global rcver RC1
Summary: PHP scripting language for creating dynamic web sites
Name: %{?scl_prefix}php
@@ -194,6 +194,7 @@ Patch49: php-7.2.16-pdooci.patch
Patch91: php-7.2.0-oci8conf.patch
# Upstream fixes (100+)
+Patch100: php-bug78412.patch
# Security fixes (200+)
@@ -947,6 +948,7 @@ sed -e 's/php-devel/%{?scl_prefix}php-devel/' -i scripts/phpize.in
%patch91 -p1 -b .remi-oci8
# upstream patches
+%patch100 -p1 -b .78412
# security patches
@@ -1892,6 +1894,11 @@ fi
%changelog
+* Wed Aug 28 2019 Remi Collet <remi@remirepo.net> - 7.2.22-1
+- Update to 7.2.22 - http://www.php.net/releases/7_2_22.php
+- fix generator incorrectly reports non-releasable $this as GC child
+ https://bugs.php.net/78412
+
* Mon Aug 19 2019 Remi Collet <remi@remirepo.net> - 7.2.22~RC1-1
- update to 7.2.22RC1