????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 18.223.162.48 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/home/b8009/php-5.6.22/ext/soap/tests/ |
Upload File : |
--TEST-- Bug #68361 Segmentation fault on SoapClient::__getTypes --SKIPIF-- <?php require_once('skipif.inc'); ?> --FILE-- <?php $xml = <<<XML <?xml version="1.0" encoding="UTF-8"?> <definitions name="TestServer" targetNamespace="http://foo.bar/testserver" xmlns:tns="http://foo.bar/testserver" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns="http://foo.bar/testserver/types"> <types> <xsd:schema targetNamespace="http://foo.bar/testserver/types" xmlns="http://foo.bar/testserver/types"> <xsd:complexType name="ArrayOfEmployeeReturn"> <xsd:complexContent> <xsd:restriction base="soapenc:Array"> <xsd:attribute ref="soapenc:arrayType" arrayType="ns:Employee[]"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="Employee"> <xsd:sequence> <xsd:element name="id" type="xsd:int"/> <xsd:element name="department" type="xsd:string"/> <xsd:element name="name" type="xsd:string"/> <xsd:element name="age" type="xsd:int"/> </xsd:sequence> </xsd:complexType> <xsd:element name="Employee" nillable="true" type="ns:Employee"/> <xsd:complexType name="User"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="age" type="xsd:int"/> </xsd:sequence> </xsd:complexType> <xsd:element name="User" nillable="true" type="ns:User"/> </xsd:schema> </types> <message name="getEmployeeRequest"> <part name="name" type="xsd:name"/> </message> <message name="getEmployeeResponse"> <part name="employeeReturn" type="ns:ArrayOfEmployeeReturn"/> </message> <message name="getUserRequest"> <part name="id" type="xsd:id"/> </message> <message name="getUserResponse"> <part name="userReturn" element="ns:User"/> </message> <portType name="TestServerPortType"> <operation name="getEmployee"> <input message="tns:getEmployeeRequest"/> <output message="tns:getEmployeeResponse"/> </operation> <operation name="getUser"> <input message="tns:getUserRequest"/> <output message="tns:getUserResponse"/> </operation> </portType> <binding name="TestServerBinding" type="tns:TestServerPortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getEmployee"> <soap:operation soapAction="http://foo.bar/testserver/#getEmployee"/> <input> <soap:body use="literal" namespace="http://foo.bar/testserver"/> </input> <output> <soap:body use="literal" namespace="http://foo.bar/testserver"/> </output> </operation> <operation name="getUser"> <soap:operation soapAction="http://foo.bar/testserver/#getUser"/> <input> <soap:body use="literal" namespace="http://foo.bar/testserver"/> </input> <output> <soap:body use="literal" namespace="http://foo.bar/testserver"/> </output> </operation> </binding> <service name="TestServerService"> <port name="TestServerPort" binding="tns:TestServerBinding"> <soap:address location="http://localhost/wsdl-creator/TestClass.php"/> </port> </service> </definitions> XML; file_put_contents(__DIR__ . "/bug68361.xml", $xml); $client = new SoapClient(__DIR__ . "/bug68361.xml"); $res = $client->__getTypes(); // Segmentation fault here print_r($res); ?> --CLEAN-- <?php unlink(__DIR__ . "/bug68361.xml"); ?> --EXPECT-- Array ( [0] => anyType ArrayOfEmployeeReturn[] [1] => struct Employee { int id; string department; string name; int age; } [2] => struct User { string name; int age; } )