laruence Sun, 26 Feb 2012 14:56:26 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=323563
Log: Improve fix for #61165, the previous one cause #43450 test failed Bugs: https://bugs.php.net/61165 (Assigned) Segfault - strip_tags() https://bugs.php.net/43450 (Closed) Memory leak on some functions with implicit object __toString() call Changed paths: U php/php-src/branches/PHP_5_3/Zend/zend_API.c U php/php-src/trunk/Zend/zend_API.c Modified: php/php-src/branches/PHP_5_3/Zend/zend_API.c =================================================================== --- php/php-src/branches/PHP_5_3/Zend/zend_API.c 2012-02-26 10:48:50 UTC (rev 323562) +++ php/php-src/branches/PHP_5_3/Zend/zend_API.c 2012-02-26 14:56:26 UTC (rev 323563) @@ -255,14 +255,13 @@ { if (Z_OBJ_HANDLER_PP(arg, cast_object)) { zval *obj; - ALLOC_ZVAL(obj); - MAKE_COPY_ZVAL(arg, obj); + MAKE_STD_ZVAL(obj); if (Z_OBJ_HANDLER_P(*arg, cast_object)(*arg, obj, IS_STRING TSRMLS_CC) == SUCCESS) { zval_ptr_dtor(arg); *arg = obj; return SUCCESS; } - zval_ptr_dtor(&obj); + efree(obj); } /* Standard PHP objects */ if (Z_OBJ_HT_PP(arg) == &std_object_handlers || !Z_OBJ_HANDLER_PP(arg, cast_object)) { Modified: php/php-src/trunk/Zend/zend_API.c =================================================================== --- php/php-src/trunk/Zend/zend_API.c 2012-02-26 10:48:50 UTC (rev 323562) +++ php/php-src/trunk/Zend/zend_API.c 2012-02-26 14:56:26 UTC (rev 323563) @@ -263,8 +263,7 @@ { if (Z_OBJ_HANDLER_PP(arg, cast_object)) { zval *obj; - ALLOC_ZVAL(obj); - MAKE_COPY_ZVAL(arg, obj); + MAKE_STD_ZVAL(obj); if (Z_OBJ_HANDLER_P(*arg, cast_object)(*arg, obj, type TSRMLS_CC) == SUCCESS) { zval_ptr_dtor(arg); *arg = obj; @@ -272,7 +271,7 @@ *p = Z_STRVAL_PP(arg); return SUCCESS; } - zval_ptr_dtor(&obj); + efree(obj); } /* Standard PHP objects */ if (Z_OBJ_HT_PP(arg) == &std_object_handlers || !Z_OBJ_HANDLER_PP(arg, cast_object)) {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php