mirror of
https://github.com/php/php-src.git
synced 2025-08-18 06:58:55 +02:00
Fixed Bug #36614 (Segfault when using Soap)
This commit is contained in:
parent
111046ceed
commit
09619a30cb
4 changed files with 220 additions and 1 deletions
|
@ -2117,7 +2117,7 @@ static void schema_attribute_fixup(sdlCtx *ctx, sdlAttributePtr attr)
|
|||
}
|
||||
if (attr->name == NULL && attr->ref != NULL) {
|
||||
char *name = strrchr(attr->ref, ':');
|
||||
if (*name) {
|
||||
if (name) {
|
||||
attr->name = estrdup(name+1);
|
||||
} else{
|
||||
attr->name = estrdup(attr->ref);
|
||||
|
|
13
ext/soap/tests/bugs/bug36614.phpt
Executable file
13
ext/soap/tests/bugs/bug36614.phpt
Executable file
|
@ -0,0 +1,13 @@
|
|||
--TEST--
|
||||
Bug #36614 (Segfault when using Soap)
|
||||
--SKIPIF--
|
||||
<?php require_once('skipif.inc'); ?>
|
||||
--INI--
|
||||
soap.wsdl_cache_enabled=0
|
||||
--FILE--
|
||||
<?php
|
||||
$lo_soap = new SoapClient(dirname(__FILE__)."/bug36614.wsdl");
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
204
ext/soap/tests/bugs/bug36614.wsdl
Executable file
204
ext/soap/tests/bugs/bug36614.wsdl
Executable file
|
@ -0,0 +1,204 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<definitions name="SonicMobile Web-Services"
|
||||
targetNamespace="http://soap.sonicmobile.com/sonicmobile.wsdl"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:sonic="http://soap.sonicmobile.com/sonicmobile.wsdl"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
|
||||
<types>
|
||||
<xsd:schema xmlns="http://www.w3.org/2000/10/XMLSchema">
|
||||
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
|
||||
<complexType name="TransportCount">
|
||||
<all>
|
||||
<element name="transport" type="string" />
|
||||
<element name="count" type="integer" />
|
||||
<element name="rate" type="integer" />
|
||||
<element name="last_message" type="integer" />
|
||||
</all>
|
||||
</complexType>
|
||||
<complexType name="ArrayOfTransportCount">
|
||||
<complexContent>
|
||||
<restriction base="soapenc:Array">
|
||||
<attribute ref="soapenc:arrayType" arrayType="TransportCount[]" />
|
||||
</restriction>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
</xsd:schema>
|
||||
</types>
|
||||
|
||||
<message name="userSendMessageRequest">
|
||||
<part name="sourceUser" type="xsd:int"/>
|
||||
<part name="password" type="xsd:string"/>
|
||||
<part name="destinationUser" type="xsd:int"/>
|
||||
<part name="content" type="xsd:string"/>
|
||||
<part name="sendRepliesTo" type="xsd:string"/>
|
||||
<part name="reference" type="xsd:string"/>
|
||||
</message>
|
||||
|
||||
<message name="sendMessageRequest">
|
||||
<part name="application" type="xsd:string"/>
|
||||
<part name="password" type="xsd:string"/>
|
||||
<part name="destination" type="xsd:string"/>
|
||||
<part name="content" type="xsd:string"/>
|
||||
<part name="reference" type="xsd:string"/>
|
||||
<part name="requestSource" type="xsd:string"/>
|
||||
<part name="customer" type="xsd:string"/>
|
||||
<part name="class" type="xsd:string"/>
|
||||
</message>
|
||||
|
||||
<message name="MessageResponse">
|
||||
<part name="messageid" type="xsd:int"/>
|
||||
<part name="response" type="xsd:string"/>
|
||||
</message>
|
||||
|
||||
<message name="messageCountRequest">
|
||||
<part name="password" type="xsd:string"/>
|
||||
</message>
|
||||
|
||||
<message name="messageCountResponse">
|
||||
<part name="transports" type="tns:ArrayOfTransportCount"/>
|
||||
</message>
|
||||
|
||||
<message name="serverStatusRequest">
|
||||
<part name="password" type="xsd:string"/>
|
||||
</message>
|
||||
<message name="serverStatusResponse">
|
||||
<part name="status_string" type="xsd:string"/>
|
||||
</message>
|
||||
|
||||
<message name="flushGatewayRequest">
|
||||
<part name="password" type="xsd:string"/>
|
||||
</message>
|
||||
<message name="flushGatewayResponse">
|
||||
<part name="status_string" type="xsd:string"/>
|
||||
</message>
|
||||
|
||||
<portType name="SonicMobilePortType">
|
||||
<operation name="userSendMessage">
|
||||
<input message="sonic:userSendMessageRequest"/>
|
||||
<output message="sonic:MessageResponse"/>
|
||||
</operation>
|
||||
|
||||
<operation name="sendMessage">
|
||||
<input message="sonic:sendMessageRequest"/>
|
||||
<output message="sonic:MessageResponse"/>
|
||||
</operation>
|
||||
|
||||
<operation name="messageCount">
|
||||
<input message="sonic:messageCountRequest"/>
|
||||
<output message="sonic:messageCountResponse"/>
|
||||
</operation>
|
||||
|
||||
<operation name="serverStatus">
|
||||
<input message="sonic:serverStatusRequest"/>
|
||||
<output message="sonic:serverStatusResponse"/>
|
||||
</operation>
|
||||
|
||||
<operation name="flushGateway">
|
||||
<input message="sonic:flushGatewayRequest"/>
|
||||
<output message="sonic:flushGatewayResponse"/>
|
||||
</operation>
|
||||
</portType>
|
||||
|
||||
<binding name="SonicMobileBinding" type="sonic:SonicMobilePortType">
|
||||
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
|
||||
|
||||
<operation name="userSendMessage">
|
||||
<soap:operation soapAction="http://soap.sonicmobile.com/SonicMobile/SOAP#userSendMessage"/>
|
||||
|
||||
<input>
|
||||
<soap:body
|
||||
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
|
||||
use="encoded" />
|
||||
</input>
|
||||
|
||||
<output>
|
||||
<soap:body
|
||||
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
|
||||
use="encoded" />
|
||||
</output>
|
||||
</operation>
|
||||
|
||||
<operation name="sendMessage">
|
||||
<soap:operation soapAction="http://soap.sonicmobile.com/SonicMobile/SOAP#sendMessage"/>
|
||||
|
||||
<input>
|
||||
<soap:body
|
||||
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
|
||||
use="encoded" />
|
||||
</input>
|
||||
|
||||
<output>
|
||||
<soap:body
|
||||
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
|
||||
use="encoded" />
|
||||
</output>
|
||||
</operation>
|
||||
|
||||
<operation name="messageCount">
|
||||
<soap:operation soapAction="http://soap.sonicmobile.com/SonicMobile/SOAP#messageCount"/>
|
||||
|
||||
<input>
|
||||
<soap:body
|
||||
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
|
||||
use="encoded" />
|
||||
</input>
|
||||
|
||||
<output>
|
||||
<soap:body
|
||||
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
|
||||
use="encoded" />
|
||||
</output>
|
||||
</operation>
|
||||
|
||||
<operation name="serverStatus">
|
||||
<soap:operation soapAction="http://soap.sonicmobile.com/SonicMobile/SOAP#serverStatus"/>
|
||||
|
||||
<input>
|
||||
<soap:body
|
||||
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
|
||||
use="encoded" />
|
||||
</input>
|
||||
|
||||
<output>
|
||||
<soap:body
|
||||
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
|
||||
use="encoded" />
|
||||
</output>
|
||||
</operation>
|
||||
|
||||
<operation name="flushGateway">
|
||||
<soap:operation soapAction="http://soap.sonicmobile.com/SonicMobile/SOAP#flushGateway"/>
|
||||
|
||||
<input>
|
||||
<soap:body
|
||||
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
|
||||
use="encoded" />
|
||||
</input>
|
||||
<output>
|
||||
<soap:body
|
||||
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
|
||||
use="encoded" />
|
||||
</output>
|
||||
</operation>
|
||||
|
||||
</binding>
|
||||
|
||||
<service name="SonicMobile">
|
||||
<port name="SonicMobilePort" binding="sonic:SonicMobileBinding">
|
||||
<soap:address location="http://soap.sonicmobile.com/"/>
|
||||
</port>
|
||||
</service>
|
||||
|
||||
</definitions>
|
|
@ -1,5 +1,7 @@
|
|||
--TEST--
|
||||
Bug #36629 (SoapServer::handle() exits on SOAP faults)
|
||||
--SKIPIF--
|
||||
<?php require_once('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
function test1() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue