dmitry Mon, 17 May 2010 07:50:33 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=299424
Log: Fixed a possible crash because of recursive GC invocation Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/simplexml/simplexml.c U php/php-src/trunk/ext/simplexml/simplexml.c Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2010-05-17 07:44:30 UTC (rev 299423) +++ php/php-src/branches/PHP_5_3/NEWS 2010-05-17 07:50:33 UTC (rev 299424) @@ -23,6 +23,7 @@ - Fixed very rare memory leak in mysqlnd, when binding thousands of columns. (Andrey) +- Fixed a possible crash because of recursive GC invocation. (Dmitry) - Fixed a possible resource destruction issues in shm_put_var() Reported by Stefan Esser (Dmitry) - Fixed a possible information leak because of interruption of XOR operator. Modified: php/php-src/branches/PHP_5_3/ext/simplexml/simplexml.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/simplexml/simplexml.c 2010-05-17 07:44:30 UTC (rev 299423) +++ php/php-src/branches/PHP_5_3/ext/simplexml/simplexml.c 2010-05-17 07:50:33 UTC (rev 299424) @@ -1083,6 +1083,9 @@ zend_hash_clean(sxe->properties); rv = sxe->properties; } else { + if (GC_G(gc_active)) { + return NULL; + } ALLOC_HASHTABLE(rv); zend_hash_init(rv, 0, NULL, ZVAL_PTR_DTOR, 0); sxe->properties = rv; Modified: php/php-src/trunk/ext/simplexml/simplexml.c =================================================================== --- php/php-src/trunk/ext/simplexml/simplexml.c 2010-05-17 07:44:30 UTC (rev 299423) +++ php/php-src/trunk/ext/simplexml/simplexml.c 2010-05-17 07:50:33 UTC (rev 299424) @@ -1083,6 +1083,9 @@ zend_hash_clean(sxe->properties); rv = sxe->properties; } else { + if (GC_G(gc_active)) { + return NULL; + } ALLOC_HASHTABLE(rv); zend_hash_init(rv, 0, NULL, ZVAL_PTR_DTOR, 0); sxe->properties = rv;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php