From: Antony Dovgal Date: Mon, 12 Nov 2007 11:22:00 +0000 (+0000) Subject: fix #42736 (xmlrpc_server_call_method() crashes) X-Git-Tag: RELEASE_2_0_0a1~1391 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=428fe33f4f1cc9057cef1006d58b30b08feac8ff;p=php fix #42736 (xmlrpc_server_call_method() crashes) --- diff --git a/ext/xmlrpc/tests/bug42736.phpt b/ext/xmlrpc/tests/bug42736.phpt new file mode 100644 index 0000000000..b9a46cff5c --- /dev/null +++ b/ext/xmlrpc/tests/bug42736.phpt @@ -0,0 +1,56 @@ +--TEST-- +Bug #42736 (xmlrpc_server_call_method() crashes) +--SKIPIF-- + +--FILE-- +add($id); + } +} + +$xml = xmlrpc_server_create(); + +$Myrequest = 'GetProducts20060922T14:26:19'; + +class MyClass { + function GetProducts($dummy, $time){ + return array('faultString' => $time); + } +} +$myclass = new MyClass(); +xmlrpc_server_register_method($xml, 'GetProducts', array($myclass, 'GetProducts')); +$response = xmlrpc_server_call_method($xml, $Myrequest, null); + +var_dump($response); + +echo "Done\n"; +?> +--EXPECTF-- +string(402) " + + + + + + + faultString + + + + + 20060922T14:26:19 + + + + + + + + + + +" +Done diff --git a/ext/xmlrpc/xmlrpc-epi-php.c b/ext/xmlrpc/xmlrpc-epi-php.c index 8209dd4339..1db5a832d1 100644 --- a/ext/xmlrpc/xmlrpc-epi-php.c +++ b/ext/xmlrpc/xmlrpc-epi-php.c @@ -864,8 +864,7 @@ static XMLRPC_VALUE php_xmlrpc_callback(XMLRPC_SERVER server, XMLRPC_REQUEST xRe pData->php_executed = 1; - zval_dtor(xmlrpc_params); - FREE_ZVAL(xmlrpc_params); + zval_ptr_dtor(&xmlrpc_params); return NULL; }