felipe Thu Apr 2 15:52:57 2009 UTC Added files: (Branch: PHP_5_3) /php-src/ext/xmlrpc/tests bug47818.phpt
Modified files: /php-src/ext/xmlrpc xmlrpc-epi-php.c Log: - MFH: Fixed bug #47818 (Segfault due to bound callback param) http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.39.2.5.2.6.2.19&r2=1.39.2.5.2.6.2.20&diff_format=u Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.39.2.5.2.6.2.19 php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.39.2.5.2.6.2.20 --- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.39.2.5.2.6.2.19 Thu Mar 19 00:18:48 2009 +++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Thu Apr 2 15:52:57 2009 @@ -51,7 +51,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: xmlrpc-epi-php.c,v 1.39.2.5.2.6.2.19 2009/03/19 00:18:48 iliaa Exp $ */ +/* $Id: xmlrpc-epi-php.c,v 1.39.2.5.2.6.2.20 2009/04/02 15:52:57 felipe Exp $ */ /********************************************************************** * BUGS: * @@ -1157,8 +1157,8 @@ } /* cleanup after ourselves. what a sty! */ - zval_dtor(data.xmlrpc_method); - FREE_ZVAL(data.xmlrpc_method); + zval_ptr_dtor(&data.xmlrpc_method); + zval_dtor(data.return_data); FREE_ZVAL(data.return_data); http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/tests/bug47818.phpt?view=markup&rev=1.1 Index: php-src/ext/xmlrpc/tests/bug47818.phpt +++ php-src/ext/xmlrpc/tests/bug47818.phpt --TEST-- Bug #47818 (Segfault due to bound callback param) --FILE-- <?php class MyXmlRpc { private $s; private $method; function impl($method_name, $params, $user_data){ $this->method = $method_name; print "Inside impl(): {$this->method}\n"; return array_sum($params); } function __construct() { $this->s = xmlrpc_server_create(); xmlrpc_server_register_method($this->s, 'add', array($this, 'impl')); } function call($req) { return xmlrpc_server_call_method($this->s, $req, null); } function getMethod() {return $this->method;} } $x = new MyXmlRpc; $resp = $x->call(xmlrpc_encode_request('add', array(1, 2, 3))); $method = $x->getMethod(); print "Global scope: $method\n"; ?> --EXPECTF-- Inside impl(): add Global scope: add -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php