#45238 [Opn->Fbk]: SOAP client buffer overflow
ID: 45238
Updated by: jani@php.net
Reported By: john dot navratil at sbcglobal dot net
-Status: Open
+Status: Feedback
Bug Type: SOAP related
Operating System: Solaris 8
PHP Version: 5.2.6
New Comment:
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
Previous Comments:
------------------------------------------------------------------------
[2008-06-11 14:10:13] john dot navratil at sbcglobal dot net
Description:
------------
This is related to bug 43437. In fact, I posted this as a comment to
that bug, but there doesn't appear to be much action there. Sorry if I
am posting a duplicate.
A segmentation fault is generated when a client invokes a SOAP method
via _doRequest() after what appears to be a buffer overflow in a
previous request. The test code return a string of bytes. Attempting
to return a string 7443 X's succeeds. 7444 fails with
message: PHP Warning: SoapClient::__doRequest(): 1 bytes of buffered
data lost during stream conversion!. After failure, a second SOAP
invocation results in a segmentation fault.
FWIW: Hitting the same SOAP server with a VBScript test script doesn't
exhibit the error.
Reproduce code:
---------------
SOAP Server Example -------:
<?
function myMethod()
{
$rslt = str_repeat('x', 7444);
return $rslt;
}
ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache
$server = new SoapServer("http://myURL/my.wsdl");
$server->addFunction("myMethod");
?>
SOAP Client test code -------:
<?php
ini_set("soap.wsdl_cache_enabled", "0");
$client = new SoapClient("http://myURL/my.wsdl");
try
{
print($client->myMethod());
print($client->myMethod());
}
catch (SoapFault $exception)
{
echo $exception;
}
?>
Expected result:
----------------
A stream of 'X's
Actual result:
--------------
A segmentation fault
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=45238&edit=1
Thread (2 messages)