tony2001                Fri Aug 11 17:50:01 2006 UTC

  Added files:                 (Branch: PHP_4_4)
    /php-src/ext/xmlrpc/tests   bug38431.phpt 

  Modified files:              
    /php-src    NEWS 
    /php-src/ext/xmlrpc xmlrpc-epi-php.c 
  Log:
  MFH: fix #38431 (xmlrpc_get_type() crashes PHP on objects)
  
  
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.1247.2.920.2.152&r2=1.1247.2.920.2.153&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1247.2.920.2.152 php-src/NEWS:1.1247.2.920.2.153
--- php-src/NEWS:1.1247.2.920.2.152     Fri Aug 11 13:04:14 2006
+++ php-src/NEWS        Fri Aug 11 17:50:01 2006
@@ -7,6 +7,7 @@
   enabled. (Stefan E.)
 - Fixed a memory corruption error with an invalid foreach() call. (Stefan E.,
   Dmitry, Derick)
+- Fixed bug #38431 (xmlrpc_get_type() crashes PHP on objects). (Tony)
 - Fixed bug #38377 (session_destroy() gives warning after
   session_regenerate_id()). (Ilia)
 - Fixed bug #38322 (reading past array in sscanf() leads to arbitary code 
http://cvs.php.net/viewvc.cgi/php-src/ext/xmlrpc/xmlrpc-epi-php.c?r1=1.24.2.4.4.4&r2=1.24.2.4.4.5&diff_format=u
Index: php-src/ext/xmlrpc/xmlrpc-epi-php.c
diff -u php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.24.2.4.4.4 
php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.24.2.4.4.5
--- php-src/ext/xmlrpc/xmlrpc-epi-php.c:1.24.2.4.4.4    Sun Jan  1 13:46:59 2006
+++ php-src/ext/xmlrpc/xmlrpc-epi-php.c Fri Aug 11 17:50:01 2006
@@ -51,7 +51,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: xmlrpc-epi-php.c,v 1.24.2.4.4.4 2006/01/01 13:46:59 sniper Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.24.2.4.4.5 2006/08/11 17:50:01 tony2001 Exp $ */
 
 /**********************************************************************
 * BUGS:                                                               *
@@ -1492,7 +1492,7 @@
 
    type = get_zval_xmlrpc_type(arg, 0);
    if (type == xmlrpc_vector) {
-      vtype = determine_vector_type(Z_ARRVAL_P(arg));
+      vtype = determine_vector_type((Z_TYPE_P(arg) == IS_OBJECT) ? 
Z_OBJPROP_P(arg) : Z_ARRVAL_P(arg));
    }
    
    RETURN_STRING((char*) xmlrpc_type_as_str(type, vtype), 1);

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

var_dump(xmlrpc_get_type(new stdclass));
var_dump(xmlrpc_get_type(array()));
$var = array(1,2,3);
var_dump(xmlrpc_get_type($var));
$var = array("test"=>1,2,3);
var_dump(xmlrpc_get_type($var));
$var = array("test"=>1,"test2"=>2);
var_dump(xmlrpc_get_type($var));

echo "Done\n";
?>
--EXPECTF--     
string(5) "array"
string(5) "array"
string(5) "array"
string(5) "mixed"
string(6) "struct"
Done

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

Reply via email to