From 58e5eb330af82c1443996b5ac76809e7f69d1565 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 28 Aug 2019 09:09:18 +0200 Subject: - 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 --- failed.txt | 10 ++++------ php-bug78412.patch | 37 +++++++++++++++++++++++++++++++++++++ php.spec | 9 ++++++++- 3 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 php-bug78412.patch 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 +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 - 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 - 7.2.22~RC1-1 - update to 7.2.22RC1 -- cgit