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