diff --git a/NEWS b/NEWS index 0c4d7865526..4f29a68f01e 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,7 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +?? ??? 2012, PHP 5.4.14 + ?? ??? 2012, PHP 5.4.13 - Core: @@ -23,17 +25,27 @@ PHP NEWS . Fixed bug #60840 (undefined symbol: mysqlnd_debug_std_no_trace_funcs). (Johannes) +- Phar: + . Fixed timestamp update on Phar contents modification. (Dmitry) + +- SOAP + . Added check that soap.wsdl_cache_dir conforms to open_basedir + (CVE-2013-1635). (Dmitry) + . Disabled external entities loading (CVE-2013-1643). (Dmitry) + - SPL: . Fixed bug #64264 (SPLFixedArray toArray problem). (Laruence) . Fixed bug #64228 (RecursiveDirectoryIterator always assumes SKIP_DOTS). (patch by kriss@krizalys.com, Laruence) . Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended). (Nikita Popov) + . Fixed bug #52861 (unset fails with ArrayObject and deep arrays). + (Mike Willbanks) - SNMP: . Fixed bug #64124 (IPv6 malformed). (Boris Lytochkin) -?? ??? 2012, PHP 5.4.12 +21 Feb 2012, PHP 5.4.12 - Core: . Fixed bug #64099 (Wrong TSRM usage in zend_Register_class alias). (Johannes) diff --git a/config.sub b/config.sub index 6759825a5b7..3995776ddab 100644 --- a/config.sub +++ b/config.sub @@ -897,7 +897,7 @@ case $basic_machine in ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown diff --git a/configure.in b/configure.in index 3597c24afa0..c0700b49166 100644 --- a/configure.in +++ b/configure.in @@ -119,7 +119,7 @@ int zend_sprintf(char *buffer, const char *format, ...); PHP_MAJOR_VERSION=5 PHP_MINOR_VERSION=4 -PHP_RELEASE_VERSION=13 +PHP_RELEASE_VERSION=14 PHP_EXTRA_VERSION="-dev" PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION" PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 10000 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION` diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c index 40efc43915b..2c2c87d0279 100644 --- a/ext/spl/spl_array.c +++ b/ext/spl/spl_array.c @@ -402,7 +402,7 @@ static zval *spl_array_read_dimension_ex(int check_inherited, zval *object, zval /* When in a write context, * ZE has to be fooled into thinking this is in a reference set * by separating (if necessary) and returning as an is_ref=1 zval (even if refcount == 1) */ - if ((type == BP_VAR_W || type == BP_VAR_RW) && !Z_ISREF_PP(ret)) { + if ((type == BP_VAR_W || type == BP_VAR_RW || type == BP_VAR_UNSET) && !Z_ISREF_PP(ret)) { if (Z_REFCOUNT_PP(ret) > 1) { zval *newval; diff --git a/ext/spl/tests/bug52861.phpt b/ext/spl/tests/bug52861.phpt new file mode 100644 index 00000000000..30a3261c4ef --- /dev/null +++ b/ext/spl/tests/bug52861.phpt @@ -0,0 +1,22 @@ +--TEST-- +Bug #52861 (unset failes with ArrayObject and deep arrays) +--FILE-- + array('bar' => array('baz' => 'boo')))); + +unset($arrayObject['foo']['bar']['baz']); +print_r($arrayObject->getArrayCopy()); +?> +--EXPECT-- +Array +( + [foo] => Array + ( + [bar] => Array + ( + ) + + ) + +) + diff --git a/main/php_version.h b/main/php_version.h index 46dbbb12c8c..9d0b61f6213 100644 --- a/main/php_version.h +++ b/main/php_version.h @@ -2,7 +2,7 @@ /* edit configure.in to change version number */ #define PHP_MAJOR_VERSION 5 #define PHP_MINOR_VERSION 4 -#define PHP_RELEASE_VERSION 13 +#define PHP_RELEASE_VERSION 14 #define PHP_EXTRA_VERSION "-dev" -#define PHP_VERSION "5.4.13-dev" -#define PHP_VERSION_ID 50413 +#define PHP_VERSION "5.4.14-dev" +#define PHP_VERSION_ID 50414