nikic Sat, 03 Mar 2012 12:46:17 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=323850
Log: Fix bug #61264: xmlrpc_parse_method_descriptions leaks temporary variable Bug: https://bugs.php.net/61264 (Open) xmlrpc_parse_method_descriptions leaks temporary variable Changed paths: U php/php-src/branches/PHP_5_3/NEWS A php/php-src/branches/PHP_5_3/ext/xmlrpc/tests/bug61264.phpt U php/php-src/branches/PHP_5_3/ext/xmlrpc/xmlrpc-epi-php.c U php/php-src/branches/PHP_5_4/NEWS A php/php-src/branches/PHP_5_4/ext/xmlrpc/tests/bug61264.phpt U php/php-src/branches/PHP_5_4/ext/xmlrpc/xmlrpc-epi-php.c A php/php-src/trunk/ext/xmlrpc/tests/bug61264.phpt U php/php-src/trunk/ext/xmlrpc/xmlrpc-epi-php.c Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2012-03-02 23:07:19 UTC (rev 323849) +++ php/php-src/branches/PHP_5_3/NEWS 2012-03-03 12:46:17 UTC (rev 323850) @@ -73,6 +73,7 @@ - XMLRPC: . Fixed bug #61097 (Memory leak in xmlrpc functions copying zvals). (Nikic) + . Fixed bug #61264 (xmlrpc_parse_method_descriptions leaks temporary variable). (Nikita Popov) - Zlib: . Fixed bug #61139 (gzopen leaks when specifying invalid mode). (Nikic) Added: php/php-src/branches/PHP_5_3/ext/xmlrpc/tests/bug61264.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/xmlrpc/tests/bug61264.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/xmlrpc/tests/bug61264.phpt 2012-03-03 12:46:17 UTC (rev 323850) @@ -0,0 +1,17 @@ +--TEST-- +Bug #61264: xmlrpc_parse_method_descriptions leaks temporary variable +--FILE-- +<?php +$xml = <<<XML +<?xml version="1.0" encoding="utf-8"?> +<a> + <b>foo</b> +</a> +XML; +var_dump(xmlrpc_parse_method_descriptions($xml)); +?> +--EXPECT-- +array(1) { + ["b"]=> + string(3) "foo" +} Modified: php/php-src/branches/PHP_5_3/ext/xmlrpc/xmlrpc-epi-php.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/xmlrpc/xmlrpc-epi-php.c 2012-03-02 23:07:19 UTC (rev 323849) +++ php/php-src/branches/PHP_5_3/ext/xmlrpc/xmlrpc-epi-php.c 2012-03-03 12:46:17 UTC (rev 323850) @@ -1240,8 +1240,7 @@ retval = XMLRPC_to_PHP(xVal); if (retval) { - *return_value = *retval; - zval_copy_ctor(return_value); + RETVAL_ZVAL(retval, 1, 1); } /* dust, sweep, and mop */ XMLRPC_CleanupValue(xVal); Modified: php/php-src/branches/PHP_5_4/NEWS =================================================================== --- php/php-src/branches/PHP_5_4/NEWS 2012-03-02 23:07:19 UTC (rev 323849) +++ php/php-src/branches/PHP_5_4/NEWS 2012-03-03 12:46:17 UTC (rev 323850) @@ -48,6 +48,7 @@ - XMLRPC: . Fixed bug #61097 (Memory leak in xmlrpc functions copying zvals). (Nikita Popov) + . Fixed bug #61264 (xmlrpc_parse_method_descriptions leaks temporary variable). (Nikita Popov) - Zlib: . Fixed bug #61139 (gzopen leaks when specifying invalid mode). (Nikita Popov) Added: php/php-src/branches/PHP_5_4/ext/xmlrpc/tests/bug61264.phpt =================================================================== --- php/php-src/branches/PHP_5_4/ext/xmlrpc/tests/bug61264.phpt (rev 0) +++ php/php-src/branches/PHP_5_4/ext/xmlrpc/tests/bug61264.phpt 2012-03-03 12:46:17 UTC (rev 323850) @@ -0,0 +1,17 @@ +--TEST-- +Bug #61264: xmlrpc_parse_method_descriptions leaks temporary variable +--FILE-- +<?php +$xml = <<<XML +<?xml version="1.0" encoding="utf-8"?> +<a> + <b>foo</b> +</a> +XML; +var_dump(xmlrpc_parse_method_descriptions($xml)); +?> +--EXPECT-- +array(1) { + ["b"]=> + string(3) "foo" +} Modified: php/php-src/branches/PHP_5_4/ext/xmlrpc/xmlrpc-epi-php.c =================================================================== --- php/php-src/branches/PHP_5_4/ext/xmlrpc/xmlrpc-epi-php.c 2012-03-02 23:07:19 UTC (rev 323849) +++ php/php-src/branches/PHP_5_4/ext/xmlrpc/xmlrpc-epi-php.c 2012-03-03 12:46:17 UTC (rev 323850) @@ -1240,8 +1240,7 @@ retval = XMLRPC_to_PHP(xVal); if (retval) { - *return_value = *retval; - zval_copy_ctor(return_value); + RETVAL_ZVAL(retval, 1, 1); } /* dust, sweep, and mop */ XMLRPC_CleanupValue(xVal); Added: php/php-src/trunk/ext/xmlrpc/tests/bug61264.phpt =================================================================== --- php/php-src/trunk/ext/xmlrpc/tests/bug61264.phpt (rev 0) +++ php/php-src/trunk/ext/xmlrpc/tests/bug61264.phpt 2012-03-03 12:46:17 UTC (rev 323850) @@ -0,0 +1,17 @@ +--TEST-- +Bug #61264: xmlrpc_parse_method_descriptions leaks temporary variable +--FILE-- +<?php +$xml = <<<XML +<?xml version="1.0" encoding="utf-8"?> +<a> + <b>foo</b> +</a> +XML; +var_dump(xmlrpc_parse_method_descriptions($xml)); +?> +--EXPECT-- +array(1) { + ["b"]=> + string(3) "foo" +} Modified: php/php-src/trunk/ext/xmlrpc/xmlrpc-epi-php.c =================================================================== --- php/php-src/trunk/ext/xmlrpc/xmlrpc-epi-php.c 2012-03-02 23:07:19 UTC (rev 323849) +++ php/php-src/trunk/ext/xmlrpc/xmlrpc-epi-php.c 2012-03-03 12:46:17 UTC (rev 323850) @@ -1240,8 +1240,7 @@ retval = XMLRPC_to_PHP(xVal); if (retval) { - *return_value = *retval; - zval_copy_ctor(return_value); + RETVAL_ZVAL(retval, 1, 1); } /* dust, sweep, and mop */ XMLRPC_CleanupValue(xVal);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php