Bug #74975 [Com]: Incorrect xmlrpc serialization for classes with declared properties

From: Date: Wed, 04 Oct 2017 20:10:07 +0000
Subject: Bug #74975 [Com]: Incorrect xmlrpc serialization for classes with declared properties
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-211508@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=74975&edit=1 ID: 74975 Comment by: spagalax at yahoo dot com Reported by: gmblar+php at gmail dot com Summary: Incorrect xmlrpc serialization for classes with declared properties Status: Open Type: Bug Package: XMLRPC-EPI related Operating System: MacOS 10.13 PHP Version: 7.2.0beta1 Block user comment: N Private report: N New Comment: Since i have updated php to 7.1.9 (build 2 sept 2017) i get this error.. not every time only from time to time. Is this a bug? I have searched everywhere for a solution but i didn't found one Fatal error: Uncaught Error: XML-RPC doesn't support circular references in /var/website/classes/functions.php:46 Previous Comments: ------------------------------------------------------------------------ [2017-07-23 03:22:03] gmblar+php at gmail dot com Description: ------------ xmlrpc_encode and xmlrpc_encode_request works different if the properties $xmlrpc_type and $scalar are defined before assigning values to an object. If the properties $xmlrpc_type and $scalar are defined, xmlrpc_encode* don't use the values for serialization. Test script: --------------- class Foo { } class Bar { public $xmlrpc_type; public $scalar; } $foo = new Foo(); $foo->xmlrpc_type = 'base64'; $foo->scalar = 'foobar'; $bar = new Bar(); $bar->xmlrpc_type = 'base64'; $bar->scalar = 'foobar'; $xml = xmlrpc_encode([ 'foo' => $foo, 'bar' => $bar ]); var_dump($xml); Expected result: ---------------- <?xml version="1.0" encoding="utf-8"?> <params> <param> <value> <struct> <member> <name>foo</name> <value> <base64>Zm9vYmFy&#10;</base64> </value> </member> <member> <name>bar</name> <value> <base64>Zm9vYmFy&#10;</base64> </value> </member> </struct> </value> </param> </params> Actual result: -------------- <?xml version="1.0" encoding="utf-8"?> <params> <param> <value> <struct> <member> <name>foo</name> <value> <base64>Zm9vYmFy&#10;</base64> </value> </member> <member> <name>bar</name> <value> <struct> <member> <name>xmlrpc_type</name> <value> <string>base64</string> </value> </member> <member> <name>scalar</name> <value> <string>foobar</string> </value> </member> </struct> </value> </member> </struct> </value> </param> </params> ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=74975&edit=1

« previous php.bugs (#211508) next »