diff options
| author | Remi Collet <remi@remirepo.net> | 2017-12-01 14:22:07 +0100 | 
|---|---|---|
| committer | Remi Collet <remi@remirepo.net> | 2017-12-01 14:22:07 +0100 | 
| commit | 912a14cec72d394e150312bc746618005109a4f6 (patch) | |
| tree | 804320a935396756daba37adb1acbbcb6e7e8124 | |
| parent | f63ae0f9df31fc55882ade435115036564ae1e9a (diff) | |
add upstream patch for https://bugs.php.net/75573
| -rw-r--r-- | php-bug75514.patch (renamed from 0001-Fixed-bug-75514-mt_rand-returns-value-outside-min-ma.patch) | 0 | ||||
| -rw-r--r-- | php-bug75573.patch | 107 | ||||
| -rw-r--r-- | php71.spec | 11 | 
3 files changed, 115 insertions, 3 deletions
| diff --git a/0001-Fixed-bug-75514-mt_rand-returns-value-outside-min-ma.patch b/php-bug75514.patch index c963933..c963933 100644 --- a/0001-Fixed-bug-75514-mt_rand-returns-value-outside-min-ma.patch +++ b/php-bug75514.patch diff --git a/php-bug75573.patch b/php-bug75573.patch new file mode 100644 index 0000000..46cf095 --- /dev/null +++ b/php-bug75573.patch @@ -0,0 +1,107 @@ +From 3b9ba7b6bd9e24bdbeca8e8e3f24cee2fccc51d8 Mon Sep 17 00:00:00 2001 +From: Xinchen Hui <laruence@gmail.com> +Date: Wed, 29 Nov 2017 14:46:21 +0800 +Subject: [PATCH] Fixed bug #75573 (Segmentation fault in 7.1.12 and 7.0.26) + +--- + NEWS                        |  1 + + Zend/tests/bug75573.phpt    | 64 +++++++++++++++++++++++++++++++++++++++++++++ + Zend/zend_object_handlers.c | 10 +++---- + 3 files changed, 69 insertions(+), 6 deletions(-) + create mode 100644 Zend/tests/bug75573.phpt + +diff --git a/Zend/tests/bug75573.phpt b/Zend/tests/bug75573.phpt +new file mode 100644 +index 0000000..476ff6e +--- /dev/null ++++ b/Zend/tests/bug75573.phpt +@@ -0,0 +1,64 @@ ++--TEST-- ++Bug #75573 (Segmentation fault in 7.1.12 and 7.0.26) ++--FILE-- ++<?php ++ ++class A ++{ ++	var $_stdObject; ++	function initialize($properties = FALSE) { ++		$this->_stdObject = $properties ? (object) $properties : new stdClass(); ++		parent::initialize(); ++	} ++	function &__get($property) ++	{ ++		if (isset($this->_stdObject->{$property})) { ++			$retval =& $this->_stdObject->{$property}; ++			return $retval; ++		} else { ++			return NULL; ++		} ++	} ++	function &__set($property, $value) ++	{ ++		return $this->_stdObject->{$property} = $value; ++	} ++	function __isset($property_name) ++	{ ++		return isset($this->_stdObject->{$property_name}); ++	} ++} ++ ++class B extends A ++{ ++	function initialize($properties = array()) ++	{ ++		parent::initialize($properties); ++	} ++	function &__get($property) ++	{ ++		if (isset($this->settings) && isset($this->settings[$property])) { ++			$retval =& $this->settings[$property]; ++			return $retval; ++		} else { ++			return parent::__get($property); ++		} ++	} ++} ++ ++$b = new B(); ++$b->settings = [ "foo" => "bar", "name" => "abc" ]; ++var_dump($b->name); ++var_dump($b->settings); ++?> ++--EXPECTF-- ++Warning: Creating default object from empty value in %sbug75573.php on line %d ++ ++Notice: Only variable references should be returned by reference in %sbug75573.php on line %d ++string(3) "abc" ++array(2) { ++  ["foo"]=> ++  string(3) "bar" ++  ["name"]=> ++  string(3) "abc" ++} +diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c +index 10045b5..d9ebd84 100644 +--- a/Zend/zend_object_handlers.c ++++ b/Zend/zend_object_handlers.c +@@ -668,13 +668,11 @@ zval *zend_std_read_property(zval *object, zval *member, int type, void **cache_ + 			} + 			zval_ptr_dtor(&tmp_object); + 			goto exit; +-		} else { ++		} else if (Z_STRVAL_P(member)[0] == '\0' && Z_STRLEN_P(member) != 0) { + 			zval_ptr_dtor(&tmp_object); +-			if (Z_STRVAL_P(member)[0] == '\0' && Z_STRLEN_P(member) != 0) { +-				zend_throw_error(NULL, "Cannot access property started with '\\0'"); +-				retval = &EG(uninitialized_zval); +-				goto exit; +-			} ++			zend_throw_error(NULL, "Cannot access property started with '\\0'"); ++			retval = &EG(uninitialized_zval); ++			goto exit; + 		} + 	} +  +--  +2.1.4 + @@ -113,7 +113,7 @@  Summary: PHP scripting language for creating dynamic web sites  Name: php  Version: %{upver}%{?rcver:~%{rcver}} -Release: 3%{?dist} +Release: 4%{?dist}  # All files licensed under PHP version 3.01, except  # Zend is licensed under Zend  # TSRM is licensed under BSD @@ -170,6 +170,8 @@ Patch48: php-7.1.9-openssl-load-config.patch  Patch91: php-5.6.3-oci8conf.patch  # Upstream fixes (100+) +Patch100: php-bug75573.patch +Patch101: php-bug75514.patch  # Security fixes (200+) @@ -180,7 +182,6 @@ Patch300: php-7.0.10-datetests.patch  Patch301: php-7.0.0-oldpcre.patch  # WIP -Patch400: 0001-Fixed-bug-75514-mt_rand-returns-value-outside-min-ma.patch  BuildRequires: bzip2-devel, curl-devel >= 7.9  BuildRequires: httpd-devel >= 2.0.46-1, pam-devel @@ -1019,6 +1020,8 @@ support for JavaScript Object Notation (JSON) to PHP.  %patch91 -p1 -b .remi-oci8  # upstream patches +%patch100 -p1 -b .bug75573 +%patch101 -p1 -b .bug75514  # security patches @@ -1034,7 +1037,6 @@ fi  %endif  # WIP patch -%patch400 -p1 -bug75514  # Prevent %%doc confusion over LICENSE files  cp Zend/LICENSE Zend/ZEND_LICENSE @@ -2057,6 +2059,9 @@ fi  %changelog +* Fri Dec  1 2017 Remi Collet <remi@remirepo.net> - 7.1.12-4 +- add upstream patch for https://bugs.php.net/75573 +  * Tue Nov 28 2017 Remi Collet <remi@remirepo.net> - 7.1.12-3  - refresh patch for https://bugs.php.net/75514 | 
