svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/ext/spl/spl_fixedarray.c trunk/ext/spl/spl_fixedarray.c
| From: | Felipe Pena | Date: | Sun, 08 Aug 2010 23:56:29 +0000 |
| Subject: | svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/ext/spl/spl_fixedarray.c trunk/ext/spl/spl_fixedarray.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-63242@lists.php.net to get a copy of this message | ||
felipe Sun, 08 Aug 2010 23:56:29 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=302011
Log:
- Fixed bug #50481 (Storing many SPLFixedArray in an array crashes)
Bug: http://bugs.php.net/50481 (Feedback) Storing many
SPLFixedArray in an array crashes
Changed paths:
U php/php-src/branches/PHP_5_3/NEWS
U php/php-src/branches/PHP_5_3/ext/spl/spl_fixedarray.c
U php/php-src/trunk/ext/spl/spl_fixedarray.c
Modified: php/php-src/branches/PHP_5_3/NEWS
===================================================================
--- php/php-src/branches/PHP_5_3/NEWS 2010-08-08 22:43:14 UTC (rev 302010)
+++ php/php-src/branches/PHP_5_3/NEWS 2010-08-08 23:56:29 UTC (rev 302011)
@@ -16,6 +16,7 @@
- Fixed bug #51610 (Using oci_connect causes PHP to take a long time to
exit). Requires Oracle bug fix 9891199 for this patch to have an
effect. (Oracle Corp.)
+- Fixed bug #50481 (Storing many SPLFixedArray in an array crashes). (Felipe)
22 Jul 2010, PHP 5.3.3
- Upgraded bundled sqlite to version 3.6.23.1. (Ilia)
Modified: php/php-src/branches/PHP_5_3/ext/spl/spl_fixedarray.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/spl/spl_fixedarray.c 2010-08-08 22:43:14 UTC (rev 302010)
+++ php/php-src/branches/PHP_5_3/ext/spl/spl_fixedarray.c 2010-08-08 23:56:29 UTC (rev 302011)
@@ -158,6 +158,9 @@
zend_hash_index_update(intern->std.properties, i, (void
*)&intern->array->elements[i], sizeof(zval *), NULL);
Z_ADDREF_P(intern->array->elements[i]);
} else {
+ if (GC_G(gc_active)) {
+ return NULL;
+ }
zend_hash_index_update(intern->std.properties, i, (void *)&EG(uninitialized_zval_ptr),
sizeof(zval *), NULL);
Z_ADDREF_P(EG(uninitialized_zval_ptr));
}
Modified: php/php-src/trunk/ext/spl/spl_fixedarray.c
===================================================================
--- php/php-src/trunk/ext/spl/spl_fixedarray.c 2010-08-08 22:43:14 UTC (rev 302010)
+++ php/php-src/trunk/ext/spl/spl_fixedarray.c 2010-08-08 23:56:29 UTC (rev 302011)
@@ -159,6 +159,9 @@
zend_hash_index_update(ht, i, (void *)&intern->array->elements[i], sizeof(zval *),
NULL);
Z_ADDREF_P(intern->array->elements[i]);
} else {
+ if (GC_G(gc_active)) {
+ return NULL;
+ }
zend_hash_index_update(ht, i, (void *)&EG(uninitialized_zval_ptr), sizeof(zval *), NULL);
Z_ADDREF_P(EG(uninitialized_zval_ptr));
}