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
--- /dev/null
+--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
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);