tony2001                Mon Nov 12 11:23:05 2007 UTC

  Added files:                 (Branch: PHP_5_3)
    /php-src/ext/xmlrpc/tests   bug42736.phpt 

  Modified files:              
    /php-src/ext/xmlrpc xmlrpc-epi-php.c 
    /php-src    NEWS 
  Log:
  MFH: fix #42736 (xmlrpc_server_call_method() crashes)
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.39.2.5.2.6.2.1&r2=1.39.2.5.2.6.2.2&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.1 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.39.2.5.2.6.2.2
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.39.2.5.2.6.2.1        Thu Sep 27 
18:00:46 2007
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Mon Nov 12 11:23:04 2007
@@ -51,7 +51,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.39.2.5.2.6.2.1 2007/09/27 18:00:46 dmitry Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.39.2.5.2.6.2.2 2007/11/12 11:23:04 tony2001 Exp $ 
*/
 
 /**********************************************************************
 * BUGS:                                                               *
@@ -523,7 +523,7 @@
                              break;
                          case HASH_KEY_IS_STRING:
                          case HASH_KEY_IS_LONG:
-                              ht = HASH_OF(*pIter);
+                             ht = HASH_OF(*pIter);
                              if (ht) {
                                  ht->nApplyCount++;
                              }
@@ -874,10 +874,9 @@
 
    pData->php_executed = 1;
 
-       zval_dtor(xmlrpc_params);
-       FREE_ZVAL(xmlrpc_params);
+   zval_ptr_dtor(&xmlrpc_params);
 
-       return NULL;
+   return NULL;
 }
 
 /* called by the C server when it first receives an introspection request.  We 
pass this on to
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.965.2.46&r2=1.2027.2.547.2.965.2.47&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.965.2.46 
php-src/NEWS:1.2027.2.547.2.965.2.47
--- php-src/NEWS:1.2027.2.547.2.965.2.46        Fri Nov  9 16:27:42 2007
+++ php-src/NEWS        Mon Nov 12 11:23:04 2007
@@ -59,6 +59,7 @@
 - Fixed bug #42848 (Status: header incorrect under FastCGI). (Dmitry)
 - Fixed bug #42773 (WSDL error causes HTTP 500 Response). (Dmitry)
 - Fixed bug #42737 (preg_split('//u') triggers a E_NOTICE with newlines). 
(Nuno)
+- Fixed bug #42736 (xmlrpc_server_call_method() crashes). (Tony)
 - Fixed bug #42657 (ini_get() returns incorrect value when default is NULL).
   (Jani)
 - Fixed bug #42637 (SoapFault : Only http and https are allowed). (Bill Moran)

http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/tests/bug42736.phpt?view=markup&rev=1.1
Index: php-src/ext/xmlrpc/tests/bug42736.phpt
+++ php-src/ext/xmlrpc/tests/bug42736.phpt
--TEST--
Bug #42736 (xmlrpc_server_call_method() crashes)
--SKIPIF--
<?php if (!extension_loaded("xmlrpc")) print "skip"; ?>
--FILE--
<?php

class SOAP_Array {
        public function get($id){
                return $this->add($id);
        }
}

$xml = xmlrpc_server_create();

$Myrequest = '<?xml version="1.0" 
encoding="UTF-8"?><methodCall><methodName>GetProducts</methodName><params><param><value><dateTime.iso8601>20060922T14:26:19</dateTime.iso8601></value></param></params></methodCall>';

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) "<?xml version="1.0" encoding="iso-8859-1"?>
<methodResponse>
<params>
 <param>
  <value>
   <struct>
    <member>
     <name>faultString</name>
     <value>
      <array>
       <data>
        <value>
         <dateTime.iso8601>20060922T14:26:19</dateTime.iso8601>
        </value>
       </data>
      </array>
     </value>
    </member>
   </struct>
  </value>
 </param>
</params>
</methodResponse>
"
Done

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to