SoapServer reports an encoding error and the error itself breaks
| Bug #42488 | SoapServer reports an encoding error and the error itself breaks | ||||
|---|---|---|---|---|---|
| Submitted: | 2007-08-30 14:15 UTC | Modified: | 2007-09-05 10:18 UTC | ||
| From: | edman007 at edman007 dot com | Assigned: | dmitry (profile) | ||
| Status: | Closed | Package: | SOAP related | ||
| PHP Version: | 5.2.4 | OS: | Linux | ||
| Private report: | No | CVE-ID: | None | ||
[2007-08-30 14:15 UTC] edman007 at edman007 dot com
Description:
------------
when a function passes a string that is not UTF-8 compliant back to SoapServer as part of a response SoapServer throws and error saying (or i guess its suppose to) that it could not encode it.
However the error message reports the error message itself, not the problematic string as the cause of the error, and then finishes off with a small portion of the problematic string, resulting in a very hard to understand error message that also does not really say where it failed.
Reproduce code:
---------------
---client.php--
<?php
ini_set('soap.wsdl_cache_enabled', 0);
$soap = new SoapClient('./something.wsdl');
try {
echo $soap->getBadUTF();
} catch (SoapFault $e){
echo $e->faultstring;
}
?>
---server.php---
<?php
ini_set('soap.wsdl_cache_enabled', 0);
$soap = new SoapServer('./something.wsdl');
function getBadUTF(){
return "stuff\x93thing";
}
$soap->addFunction('getBadUTF');
$soap->handle();
?>
---something.wsdl---
<?xml version="1.0"?>
<wsdl:definitions name="OSCAdmin"
targetNamespace="http://www.example.com/"
xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding"
xmlns:tns="http://www.example.com/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:message name="getBadUTF">
<wsdl:part name="out" type="xsd:string"/>
</wsdl:message>
<wsdl:portType name="demoPortType">
<wsdl:operation name="getBadUTF">
<wsdl:output message="tns:getBadUTF"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="demoSoapBinding" type="tns:demoPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getBadUTF">
<soap:operation soapAction=""/>
<wsdl:output name="out">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="demoService">
<wsdl:port name="demoPort" binding="tns:demoSoapBinding">
<soap:address location="http://localhost/server.php"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Expected result:
----------------
SOAP-ERROR: Encoding: string 'stuff"thing'
Actual result:
--------------
SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'SOAP-ERROR: Encoding: string 'st
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2007-08-31 15:03 UTC] jani@php.net
[2007-08-31 15:21 UTC] edman007 at edman007 dot com
[2007-09-03 10:03 UTC] jani@php.net
[2007-09-05 10:18 UTC] dmitry@php.net