felipe          Thu Apr  2 15:55:02 2009 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/ext/xmlrpc/tests   bug47818.phpt 

  Modified files:              
    /php-src    NEWS 
    /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/NEWS?r1=1.2027.2.547.2.1457&r2=1.2027.2.547.2.1458&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.1457 php-src/NEWS:1.2027.2.547.2.1458
--- php-src/NEWS:1.2027.2.547.2.1457    Wed Apr  1 17:07:45 2009
+++ php-src/NEWS        Thu Apr  2 15:55:01 2009
@@ -11,6 +11,7 @@
   (Ilia, rainer dot jung at kippdata dot de)
 - Fixed bug #47828 (openssl_x509_parse() segfaults when a UTF-8 conversion
   fails). (Scott, Kees Cook, Pierre)
+- Fixed bug #47818 (Segfault due to bound callback param). (Felipe)
 - Fixed bug #47769 (Strange extends PDO). (Felipe)
 - Fixed bug #47745 (FILTER_VALIDATE_INT doesn't allow minimum integer).
   (Dmitry)
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.39.2.5.2.13&r2=1.39.2.5.2.14&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.13 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.39.2.5.2.14
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.39.2.5.2.13   Tue Jan 27 15:02:43 2009
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Thu Apr  2 15:55:01 2009
@@ -51,7 +51,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.39.2.5.2.13 2009/01/27 15:02:43 felipe Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.39.2.5.2.14 2009/04/02 15:55:01 felipe Exp $ */
 
 /**********************************************************************
 * BUGS:                                                               *
@@ -1113,8 +1113,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

Reply via email to