bug42326.phpt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. --TEST--
  2. Bug #42326 (SoapServer crash)
  3. --EXTENSIONS--
  4. soap
  5. --INI--
  6. soap.wsdl_cache_enabled=0
  7. --FILE--
  8. <?php
  9. $request = <<<EOF
  10. <?xml version="1.0" encoding="UTF-8"?>
  11. <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.example.com/"><SOAP-ENV:Body><ns1:GetProductsRequest><time></time></ns1:GetProductsRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
  12. EOF;
  13. $soap_admin_classmap = array('productDetailsType' => 'SOAP_productDetailsType',
  14. 'GetProductsRequest' => 'SOAP_GetProductsRequest',
  15. 'GetProductsResponse' => 'SOAP_GetProductsResponse');
  16. class SOAP_productDetailsType {
  17. public $id = 0;
  18. }
  19. class SOAP_GetProductsRequest {
  20. public $time = '';
  21. }
  22. class SOAP_GetProductsResponse {
  23. public $products;
  24. function __construct(){
  25. $this->products = new SOAP_productDetailsType();
  26. }
  27. }
  28. class SOAP_Admin {
  29. public function GetProducts($time){
  30. return new SOAP_GetProductsResponse();
  31. }
  32. }
  33. $soap = new SoapServer(__DIR__.'/bug42326.wsdl', array('classmap' => $soap_admin_classmap));
  34. $soap->setClass('SOAP_Admin');
  35. ob_start();
  36. $soap->handle($request);
  37. ob_end_clean();
  38. echo "ok\n";
  39. ?>
  40. --EXPECT--
  41. ok