Browse Source

- MFH: Fixed bug #47818 (Segfault due to bound callback param)

experimental/5.3-FPM
Felipe Pena 18 years ago
parent
commit
c23f8f1134
  1. 39
      ext/xmlrpc/tests/bug47818.phpt
  2. 4
      ext/xmlrpc/xmlrpc-epi-php.c

39
ext/xmlrpc/tests/bug47818.phpt

@ -0,0 +1,39 @@
--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

4
ext/xmlrpc/xmlrpc-epi-php.c

@ -1157,8 +1157,8 @@ PHP_FUNCTION(xmlrpc_server_call_method)
}
/* 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);

Loading…
Cancel
Save