From: Nikita Popov Date: Sat, 3 Mar 2012 12:46:17 +0000 (+0000) Subject: Fix bug #61264: xmlrpc_parse_method_descriptions leaks temporary variable X-Git-Tag: php-5.5.0alpha1~481 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5b4adeae9b892dca35a33fb54a0e9de69bd2f913;p=php Fix bug #61264: xmlrpc_parse_method_descriptions leaks temporary variable --- diff --git a/ext/xmlrpc/tests/bug61264.phpt b/ext/xmlrpc/tests/bug61264.phpt new file mode 100644 index 0000000000..b1da27f252 --- /dev/null +++ b/ext/xmlrpc/tests/bug61264.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #61264: xmlrpc_parse_method_descriptions leaks temporary variable +--FILE-- + + + foo + +XML; +var_dump(xmlrpc_parse_method_descriptions($xml)); +?> +--EXPECT-- +array(1) { + ["b"]=> + string(3) "foo" +} diff --git a/ext/xmlrpc/xmlrpc-epi-php.c b/ext/xmlrpc/xmlrpc-epi-php.c index 13886c7537..cf5e257113 100644 --- a/ext/xmlrpc/xmlrpc-epi-php.c +++ b/ext/xmlrpc/xmlrpc-epi-php.c @@ -1240,8 +1240,7 @@ PHP_FUNCTION(xmlrpc_parse_method_descriptions) 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);