diff options
| author | Ondřej Surý <ondrej@sury.org> | 2012-01-11 15:43:42 +0100 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2012-01-11 15:43:42 +0100 |
| commit | 8f1428d29ef91d74b4d272af171675f2971eb15b (patch) | |
| tree | a1f4f4d7dc5bfe8096806dd5c5266634e19fa07a /ext/soap | |
| parent | c6e4182351e0173fe58de141e143aac2eacf5efe (diff) | |
| download | php-upstream/5.3.9.tar.gz | |
Imported Upstream version 5.3.9upstream/5.3.9
Diffstat (limited to 'ext/soap')
| -rw-r--r-- | ext/soap/php_encoding.c | 4 | ||||
| -rw-r--r-- | ext/soap/php_encoding.h | 4 | ||||
| -rw-r--r-- | ext/soap/php_http.c | 6 | ||||
| -rw-r--r-- | ext/soap/php_http.h | 4 | ||||
| -rw-r--r-- | ext/soap/php_packet_soap.c | 4 | ||||
| -rw-r--r-- | ext/soap/php_packet_soap.h | 4 | ||||
| -rw-r--r-- | ext/soap/php_schema.c | 14 | ||||
| -rw-r--r-- | ext/soap/php_schema.h | 4 | ||||
| -rw-r--r-- | ext/soap/php_sdl.c | 4 | ||||
| -rw-r--r-- | ext/soap/php_sdl.h | 4 | ||||
| -rw-r--r-- | ext/soap/php_soap.h | 4 | ||||
| -rw-r--r-- | ext/soap/php_xml.c | 4 | ||||
| -rw-r--r-- | ext/soap/php_xml.h | 4 | ||||
| -rw-r--r-- | ext/soap/soap.c | 15 | ||||
| -rw-r--r-- | ext/soap/tests/bugs/bug44686.phpt | 14 | ||||
| -rw-r--r-- | ext/soap/tests/bugs/bug44686.wsdl | 193 | ||||
| -rw-r--r-- | ext/soap/tests/bugs/bug54911.phpt | 22 | ||||
| -rw-r--r-- | ext/soap/tests/schema/schema064.phpt | 6 |
18 files changed, 279 insertions, 35 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index b6f0fda32..342f70bc1 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_encoding.c 314737 2011-08-10 13:44:48Z dmitry $ */ +/* $Id: php_encoding.c 321634 2012-01-01 13:15:04Z felipe $ */ #include <time.h> diff --git a/ext/soap/php_encoding.h b/ext/soap/php_encoding.h index bf8ef5de8..5cd7d5b1c 100644 --- a/ext/soap/php_encoding.h +++ b/ext/soap/php_encoding.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_encoding.h 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: php_encoding.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef PHP_ENCODING_H #define PHP_ENCODING_H diff --git a/ext/soap/php_http.c b/ext/soap/php_http.c index 63cd409f8..91ab27d52 100644 --- a/ext/soap/php_http.c +++ b/ext/soap/php_http.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_http.c 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: php_http.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "php_soap.h" #include "ext/standard/base64.h" @@ -1383,7 +1383,7 @@ static int get_http_body(php_stream *stream, int close, char *headers, char **r } } else if (header_length) { - if (header_length < 0) { + if (header_length < 0 || header_length >= INT_MAX) { return FALSE; } http_buf = emalloc(header_length + 1); diff --git a/ext/soap/php_http.h b/ext/soap/php_http.h index b22dd1e5f..42a3ba4a7 100644 --- a/ext/soap/php_http.h +++ b/ext/soap/php_http.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_http.h 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: php_http.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef PHP_HTTP_H #define PHP_HTTP_H diff --git a/ext/soap/php_packet_soap.c b/ext/soap/php_packet_soap.c index a9c118f44..4f6fe33b6 100644 --- a/ext/soap/php_packet_soap.c +++ b/ext/soap/php_packet_soap.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_packet_soap.c 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: php_packet_soap.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "php_soap.h" diff --git a/ext/soap/php_packet_soap.h b/ext/soap/php_packet_soap.h index a062b4ad0..c6960b899 100644 --- a/ext/soap/php_packet_soap.h +++ b/ext/soap/php_packet_soap.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_packet_soap.h 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: php_packet_soap.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef PHP_PACKET_SOAP_H #define PHP_PACKET_SOAP_H diff --git a/ext/soap/php_schema.c b/ext/soap/php_schema.c index 08122259d..7d4a33341 100644 --- a/ext/soap/php_schema.c +++ b/ext/soap/php_schema.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_schema.c 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: php_schema.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "php_soap.h" #include "libxml/uri.h" @@ -1081,8 +1081,8 @@ static int schema_group(sdlPtr sdl, xmlAttrPtr tns, xmlNodePtr groupType, sdlTyp nsptr = xmlSearchNs(groupType->doc, groupType, BAD_CAST(ns)); if (nsptr != NULL) { smart_str_appends(&key, (char*)nsptr->href); - smart_str_appendc(&key, ':'); } + smart_str_appendc(&key, ':'); smart_str_appends(&key, type); smart_str_0(&key); @@ -1508,9 +1508,9 @@ static int schema_element(sdlPtr sdl, xmlAttrPtr tns, xmlNodePtr element, sdlTyp nsptr = xmlSearchNs(element->doc, element, BAD_CAST(ns)); if (nsptr != NULL) { smart_str_appends(&nscat, (char*)nsptr->href); - smart_str_appendc(&nscat, ':'); newType->namens = estrdup((char*)nsptr->href); - } + } + smart_str_appendc(&nscat, ':'); smart_str_appends(&nscat, type); newType->name = estrdup(type); smart_str_0(&nscat); @@ -1734,9 +1734,9 @@ static int schema_attribute(sdlPtr sdl, xmlAttrPtr tns, xmlNodePtr attrType, sdl nsptr = xmlSearchNs(attrType->doc, attrType, BAD_CAST(ns)); if (nsptr != NULL) { smart_str_appends(&key, (char*)nsptr->href); - smart_str_appendc(&key, ':'); newAttr->namens = estrdup((char*)nsptr->href); } + smart_str_appendc(&key, ':'); smart_str_appends(&key, attr_name); smart_str_0(&key); newAttr->ref = estrdup(key.c); @@ -1970,8 +1970,8 @@ static int schema_attributeGroup(sdlPtr sdl, xmlAttrPtr tns, xmlNodePtr attrGrou nsptr = xmlSearchNs(attrGroup->doc, attrGroup, BAD_CAST(ns)); if (nsptr != NULL) { smart_str_appends(&key, (char*)nsptr->href); - smart_str_appendc(&key, ':'); } + smart_str_appendc(&key, ':'); smart_str_appends(&key, group_name); smart_str_0(&key); newAttr->ref = estrdup(key.c); diff --git a/ext/soap/php_schema.h b/ext/soap/php_schema.h index 3b2042259..cf55bad02 100644 --- a/ext/soap/php_schema.h +++ b/ext/soap/php_schema.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_schema.h 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: php_schema.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef PHP_SCHEMA_H #define PHP_SCHEMA_H diff --git a/ext/soap/php_sdl.c b/ext/soap/php_sdl.c index 6eb016997..7750da9f1 100644 --- a/ext/soap/php_sdl.c +++ b/ext/soap/php_sdl.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_sdl.c 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: php_sdl.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "php_soap.h" #include "ext/libxml/php_libxml.h" diff --git a/ext/soap/php_sdl.h b/ext/soap/php_sdl.h index 3c1c0218f..f9f2ab17f 100644 --- a/ext/soap/php_sdl.h +++ b/ext/soap/php_sdl.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_sdl.h 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: php_sdl.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef PHP_SDL_H #define PHP_SDL_H diff --git a/ext/soap/php_soap.h b/ext/soap/php_soap.h index 220bf8f30..d8f1c764f 100644 --- a/ext/soap/php_soap.h +++ b/ext/soap/php_soap.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_soap.h 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: php_soap.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef PHP_SOAP_H #define PHP_SOAP_H diff --git a/ext/soap/php_xml.c b/ext/soap/php_xml.c index 44961085e..8b0ede2e9 100644 --- a/ext/soap/php_xml.c +++ b/ext/soap/php_xml.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_xml.c 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: php_xml.c 321634 2012-01-01 13:15:04Z felipe $ */ #include "php_soap.h" #include "libxml/parser.h" diff --git a/ext/soap/php_xml.h b/ext/soap/php_xml.h index 62a4a185e..56fff3a71 100644 --- a/ext/soap/php_xml.h +++ b/ext/soap/php_xml.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: php_xml.h 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: php_xml.h 321634 2012-01-01 13:15:04Z felipe $ */ #ifndef PHP_SOAP_XML_H #define PHP_SOAP_XML_H diff --git a/ext/soap/soap.c b/ext/soap/soap.c index d1660dc04..1639c7177 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2011 The PHP Group | + | Copyright (c) 1997-2012 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ | Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ */ -/* $Id: soap.c 313665 2011-07-25 11:42:53Z felipe $ */ +/* $Id: soap.c 321634 2012-01-01 13:15:04Z felipe $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -99,6 +99,7 @@ static void soap_error_handler(int error_num, const char *error_filename, const zend_bool _old_in_compilation = CG(in_compilation); \ zend_bool _old_in_execution = EG(in_execution); \ zend_execute_data *_old_current_execute_data = EG(current_execute_data); \ + void **_old_stack_top = EG(argument_stack)->top; \ int _bailout = 0;\ SOAP_GLOBAL(use_soap_error_handler) = 1;\ SOAP_GLOBAL(error_code) = "Client";\ @@ -115,6 +116,16 @@ static void soap_error_handler(int error_num, const char *error_filename, const !instanceof_function(Z_OBJCE_P(EG(exception)), soap_fault_class_entry TSRMLS_CC)) {\ _bailout = 1;\ }\ + if (_old_stack_top != EG(argument_stack)->top) { \ + while (EG(argument_stack)->prev != NULL && \ + ((char*)_old_stack_top < (char*)EG(argument_stack) || \ + (char*) _old_stack_top > (char*)EG(argument_stack)->end)) { \ + zend_vm_stack tmp = EG(argument_stack)->prev; \ + efree(EG(argument_stack)); \ + EG(argument_stack) = tmp; \ + } \ + EG(argument_stack)->top = _old_stack_top; \ + } \ } zend_end_try();\ SOAP_GLOBAL(use_soap_error_handler) = _old_handler;\ SOAP_GLOBAL(error_code) = _old_error_code;\ diff --git a/ext/soap/tests/bugs/bug44686.phpt b/ext/soap/tests/bugs/bug44686.phpt new file mode 100644 index 000000000..cff97999c --- /dev/null +++ b/ext/soap/tests/bugs/bug44686.phpt @@ -0,0 +1,14 @@ +--TEST-- +Bug #44686 (SOAP-ERROR: Parsing WSDL with references) +--SKIPIF-- +<?php require_once 'skipif.inc'; ?> +--INI-- +soap.wsdl_cache_enabled=0 +--FILE-- +<?php +new SoapClient(dirname(__FILE__) . "/bug44686.wsdl"); +echo "ok\n"; +?> +--EXPECT-- +ok + diff --git a/ext/soap/tests/bugs/bug44686.wsdl b/ext/soap/tests/bugs/bug44686.wsdl new file mode 100644 index 000000000..87b4640b7 --- /dev/null +++ b/ext/soap/tests/bugs/bug44686.wsdl @@ -0,0 +1,193 @@ +<?xml version="1.0" encoding="utf-8"?> +<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.gomeznetworks.com/webservices/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://www.gomeznetworks.com/webservices/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:types> + <s:schema elementFormDefault="qualified" targetNamespace="http://www.gomeznetworks.com/webservices/"> + <s:element name="ProvisionMonitors"> + <s:complexType> + <s:sequence> + <s:element minOccurs="0" maxOccurs="1" name="username" type="s:string" /> + <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" /> + <s:element minOccurs="0" maxOccurs="1" ref="ProvisioningOrder" /> + </s:sequence> + </s:complexType> + </s:element> + <s:element name="ProvisionMonitorsResponse"> + <s:complexType> + <s:sequence> + <s:element minOccurs="0" maxOccurs="1" ref="ProvisioningOrderResponse" /> + </s:sequence> + </s:complexType> + </s:element> + </s:schema> + <s:schema elementFormDefault="qualified"> + <s:element name="ProvisioningOrder" type="ProvisioningOrder" /> + <s:complexType name="ProvisioningOrder"> + <s:complexContent mixed="false"> + <s:extension base="CServiceObject"> + <s:sequence> + <s:element minOccurs="0" maxOccurs="1" name="MonitorOrders" type="ArrayOfMonitorOrder" /> + <s:element minOccurs="0" maxOccurs="1" name="MonitorSites" type="ArrayOfMonitorSiteOrder" /> + <s:element minOccurs="0" maxOccurs="1" name="ReportOrders" type="ArrayOfReportOrder" /> + <s:element minOccurs="0" maxOccurs="1" name="MonitorAttributes" type="ArrayOfMonitorAttribute" /> + </s:sequence> + <s:attribute name="name" type="s:string" /> + <s:attribute name="expirationDate" type="s:dateTime" use="required" /> + <s:attribute name="autoDelete" type="s:boolean" use="required" /> + </s:extension> + </s:complexContent> + </s:complexType> + <s:complexType name="CServiceObject" abstract="true" /> + <s:complexType name="ArrayOfMonitorOrder"> + <s:sequence> + <s:element minOccurs="0" maxOccurs="unbounded" name="MonitorOrder" nillable="true" type="MonitorOrder" /> + </s:sequence> + </s:complexType> + <s:complexType name="MonitorOrder"> + <s:sequence> + <s:element minOccurs="0" maxOccurs="1" name="MonitorSites" type="ArrayOfMonitorSiteOrder" /> + <s:element minOccurs="0" maxOccurs="1" name="MonitorAttributes" type="ArrayOfMonitorAttribute" /> + </s:sequence> + <s:attribute name="name" type="s:string" /> + <s:attribute name="url" type="s:string" /> + <s:attribute name="frequencyInMins" type="s:int" use="required" /> + <s:attribute name="targetClass" type="MonitorTargetClass" use="required" /> + <s:attribute name="fileSizeOverrideInKB" type="s:int" use="required" /> + </s:complexType> + <s:complexType name="ArrayOfMonitorSiteOrder"> + <s:sequence> + <s:element minOccurs="0" maxOccurs="unbounded" name="MonitorSite" nillable="true" type="MonitorSiteOrder" /> + </s:sequence> + </s:complexType> + <s:complexType name="MonitorSiteOrder"> + <s:attribute name="siteId" type="s:int" use="required" /> + </s:complexType> + <s:complexType name="ArrayOfMonitorAttribute"> + <s:sequence> + <s:element minOccurs="0" maxOccurs="unbounded" name="MonitorAttribute" nillable="true" type="MonitorAttribute" /> + </s:sequence> + </s:complexType> + <s:complexType name="MonitorAttribute"> + <s:attribute name="name" type="s:string" /> + <s:attribute name="value" type="s:string" /> + </s:complexType> + <s:simpleType name="MonitorTargetClass"> + <s:restriction base="s:string"> + <s:enumeration value="eTransaction" /> + <s:enumeration value="eSingleURL" /> + </s:restriction> + </s:simpleType> + <s:complexType name="ArrayOfReportOrder"> + <s:sequence> + <s:element minOccurs="0" maxOccurs="unbounded" name="ReportOrder" nillable="true" type="ReportOrder" /> + </s:sequence> + </s:complexType> + <s:complexType name="ReportOrder"> + <s:sequence> + <s:element minOccurs="0" maxOccurs="1" name="EmailTargets" type="ArrayOfEmailTarget" /> + </s:sequence> + <s:attribute name="name" type="s:string" /> + <s:attribute name="reportFormatType" type="ReportFormatType" use="required" /> + <s:attribute name="reportDeliveryType" type="ReportDeliveryType" use="required" /> + <s:attribute name="reportDelayInMins" type="s:int" use="required" /> + </s:complexType> + <s:complexType name="ArrayOfEmailTarget"> + <s:sequence> + <s:element minOccurs="0" maxOccurs="unbounded" name="EmailTarget" nillable="true" type="EmailTarget" /> + </s:sequence> + </s:complexType> + <s:complexType name="EmailTarget"> + <s:attribute name="address" type="s:string" /> + </s:complexType> + <s:simpleType name="ReportFormatType"> + <s:restriction base="s:string"> + <s:enumeration value="eBarChartTestByNode" /> + </s:restriction> + </s:simpleType> + <s:simpleType name="ReportDeliveryType"> + <s:restriction base="s:string"> + <s:enumeration value="eHTML" /> + </s:restriction> + </s:simpleType> + <s:element name="ProvisioningOrderResponse" type="ProvisioningOrderResponse" /> + <s:complexType name="ProvisioningOrderResponse"> + <s:complexContent mixed="false"> + <s:extension base="CommonServiceResponse"> + <s:sequence> + <s:element minOccurs="0" maxOccurs="1" name="MonitorOrderResponses" type="ArrayOfMonitorOrderResponse" /> + <s:element minOccurs="0" maxOccurs="1" name="ReportOrderResponses" type="ArrayOfReportOrderResponse" /> + </s:sequence> + <s:attribute name="name" type="s:string" /> + <s:attribute name="groupId" type="s:int" use="required" /> + </s:extension> + </s:complexContent> + </s:complexType> + <s:complexType name="CommonServiceResponse"> + <s:sequence> + <s:element minOccurs="1" maxOccurs="1" name="status" type="StatusType" /> + <s:element minOccurs="0" maxOccurs="1" name="errorMessage" type="s:string" /> + </s:sequence> + </s:complexType> + <s:simpleType name="StatusType"> + <s:restriction base="s:string"> + <s:enumeration value="SUCCESS" /> + <s:enumeration value="FAILED" /> + </s:restriction> + </s:simpleType> + <s:complexType name="ReportOrderResponse"> + <s:complexContent mixed="false"> + <s:extension base="CommonServiceResponse"> + <s:attribute name="name" type="s:string" /> + </s:extension> + </s:complexContent> + </s:complexType> + <s:complexType name="MonitorOrderResponse"> + <s:complexContent mixed="false"> + <s:extension base="CommonServiceResponse"> + <s:attribute name="monitorId" type="s:int" use="required" /> + <s:attribute name="name" type="s:string" /> + <s:attribute name="url" type="s:string" /> + </s:extension> + </s:complexContent> + </s:complexType> + <s:complexType name="ArrayOfMonitorOrderResponse"> + <s:sequence> + <s:element minOccurs="0" maxOccurs="unbounded" name="MonitorOrderResponse" nillable="true" type="MonitorOrderResponse" /> + </s:sequence> + </s:complexType> + <s:complexType name="ArrayOfReportOrderResponse"> + <s:sequence> + <s:element minOccurs="0" maxOccurs="unbounded" name="ReportOrderResponse" nillable="true" type="ReportOrderResponse" /> + </s:sequence> + </s:complexType> + </s:schema> + </wsdl:types> + <wsdl:message name="ProvisionMonitorsSoapIn"> + <wsdl:part name="parameters" element="tns:ProvisionMonitors" /> + </wsdl:message> + <wsdl:message name="ProvisionMonitorsSoapOut"> + <wsdl:part name="parameters" element="tns:ProvisionMonitorsResponse" /> + </wsdl:message> + <wsdl:portType name="ProvisioningServiceSoap"> + <wsdl:operation name="ProvisionMonitors"> + <wsdl:input message="tns:ProvisionMonitorsSoapIn" /> + <wsdl:output message="tns:ProvisionMonitorsSoapOut" /> + </wsdl:operation> + </wsdl:portType> + <wsdl:binding name="ProvisioningServiceSoap" type="tns:ProvisioningServiceSoap"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" /> + <wsdl:operation name="ProvisionMonitors"> + <soap:operation soapAction="http://www.gomeznetworks.com/webservices/ProvisionMonitors" style="document" /> + <wsdl:input> + <soap:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap:body use="literal" /> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + <wsdl:service name="ProvisioningService"> + <wsdl:port name="ProvisioningServiceSoap" binding="tns:ProvisioningServiceSoap"> + <soap:address location="test://" /> + </wsdl:port> + </wsdl:service> +</wsdl:definitions> diff --git a/ext/soap/tests/bugs/bug54911.phpt b/ext/soap/tests/bugs/bug54911.phpt new file mode 100644 index 000000000..da57383ac --- /dev/null +++ b/ext/soap/tests/bugs/bug54911.phpt @@ -0,0 +1,22 @@ +--TEST-- +Bug #54911 (Access to a undefined member in inherit SoapClient may cause Segmentation Fault) +--SKIPIF-- +<?php require_once('skipif.inc'); ?> +--FILE-- +<?php + class XSoapClient extends SoapClient { + function __doRequest($request, $location, $action, $version, $one_way=false) { + echo self::$crash; + } + } + $client = new XSoapClient(null, array('uri'=>'', 'location'=>'')); + $client->__soapCall('', array()); +?> +--EXPECTF-- +Fatal error: Uncaught SoapFault exception: [Client] Access to undeclared static property: XSoapClient::$crash in %sbug54911.php:4 +Stack trace: +#0 %sbug54911.php(4): XSoapClient::__doRequest() +#1 [internal function]: XSoapClient->__doRequest('<?xml version="...', '', '#', 1, 0) +#2 %sbug54911.php(8): SoapClient->__soapCall('', Array) +#3 {main} + thrown in %sbug54911.php on line 4
\ No newline at end of file diff --git a/ext/soap/tests/schema/schema064.phpt b/ext/soap/tests/schema/schema064.phpt index 53e1b257b..899a2938f 100644 --- a/ext/soap/tests/schema/schema064.phpt +++ b/ext/soap/tests/schema/schema064.phpt @@ -1,7 +1,11 @@ --TEST-- SOAP XML Schema 64: standard date/time types --SKIPIF-- -<?php require_once('skipif.inc'); ?> +<?php +if (defined('PHP_WINDOWS_VERSION_MAJOR')) { + die('skip, windows has different TZ format'); +} +require_once('skipif.inc'); ?> --FILE-- <?php include "test_schema.inc"; |
