Commit graph

87 commits

Author SHA1 Message Date
Niels Dossche
c267caa542
Deduplicate XML parsing code for SOAP (#18700)
* Deduplicate XML parsing code for SOAP

* Apply suggestions from code review

Co-authored-by: Gina Peter Banyard <girgias@php.net>

---------

Co-authored-by: Gina Peter Banyard <girgias@php.net>
2025-05-29 18:35:19 +02:00
Niels Dossche
6399012cee
Fix namespace handling of WSDL and XML schema in SOAP
`attr_is_equal_ex` makes no sense: attributes never inherit the
namespace of their element. Yet this is wrongly used as a combo for
checking both the node namespace and attribute namespace.
Furthermore, not all nodes have the proper namespace check.
Fix all of this by reworking the helpers and auditing the calls to the
namespace helpers.

Closes GH-16320.
Closes bug #68576.
Closes GH-18697.
2025-05-29 16:55:41 +02:00
Niels Dossche
8b4edf0229 Remove unused function in soap 2025-05-29 10:02:43 +02:00
Niels Dossche
21691cb19b Remove uncommented init/cleanup code
This is irrelevant and is done by ext/libxml.
2025-05-29 10:02:43 +02:00
Niels Dossche
564df33ac1 Add FIXME 2025-05-29 10:02:43 +02:00
Niels Dossche
6723e88798 Add const qualifiers for php_xml 2025-05-29 10:02:43 +02:00
Niels Dossche
cc0464268d
Avoid copying the local name in SOAP's parse_namespace() (#15862)
The local name is either the entire input or is the last part, so we
never need to make a copy.
2024-09-12 22:41:45 +02:00
Niels Dossche
85705eda71 Fix compilation on libxml2 2.13 2024-07-03 10:34:46 -07:00
Gina Peter Banyard
a7c7158653
ext/soap: Use bool as return type instead of int for is_blank() 2024-06-19 02:20:34 +01:00
Derick Rethans
0870ebb862 Merge branch 'PHP-8.0' into PHP-8.1 2023-07-31 19:53:43 +01:00
Niels Dossche
c283c3ab0b Sanitize libxml2 globals before parsing
Fixes GHSA-3qrf-m4j2-pcrr.

To parse a document with libxml2, you first need to create a parsing context.
The parsing context contains parsing options (e.g. XML_NOENT to substitute
entities) that the application (in this case PHP) can set.
Unfortunately, libxml2 also supports providing default set options.
For example, if you call xmlSubstituteEntitiesDefault(1) then the XML_NOENT
option will be added to the parsing options every time you create a parsing
context **even if the application never requested XML_NOENT**.

Third party extensions can override these globals, in particular the
substitute entity global. This causes entity substitution to be
unexpectedly active.

Fix it by setting the parsing options to a sane known value.
For API calls that depend on global state we introduce
PHP_LIBXML_SANITIZE_GLOBALS() and PHP_LIBXML_RESTORE_GLOBALS().
For other APIs that work directly with a context we introduce
php_libxml_sanitize_parse_ctxt_options().
2023-07-31 19:47:19 +01:00
KsaR
01b3fc03c3
Update http->https in license (#6945)
1. Update: http://www.php.net/license/3_01.txt to https, as there is anyway server header "Location:" to https.
2. Update few license 3.0 to 3.01 as 3.0 states "php 5.1.1, 4.1.1, and earlier".
3. In some license comments is "at through the world-wide-web" while most is without "at", so deleted.
4. fixed indentation in some files before |
2021-05-06 12:16:35 +02:00
Stanislav Malyshev
f2994786f3 Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix bug #80672 - Null Dereference in SoapClient
2021-02-01 00:17:02 -08:00
Stanislav Malyshev
d94d0dda29 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix bug #80672 - Null Dereference in SoapClient
2021-01-31 21:42:48 -08:00
Stanislav Malyshev
86de4d7af6 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix bug #80672 - Null Dereference in SoapClient
2021-01-31 21:42:41 -08:00
Stanislav Malyshev
3c939e3f69 Fix bug #80672 - Null Dereference in SoapClient 2021-01-31 21:15:23 -08:00
Nikita Popov
3e01f5afb1 Replace zend_bool uses with bool
We're starting to see a mix between uses of zend_bool and bool.
Replace all usages with the standard bool type everywhere.

Of course, zend_bool is retained as an alias.
2021-01-15 12:33:06 +01:00
Gabriel Caruso
5d6e923d46
Remove mention of PHP major version in Copyright headers
Closes GH-4732.
2019-09-25 14:51:43 +02:00
Zeev Suraski
0cf7de1c70 Remove yearly range from copyright notice 2019-01-30 11:03:12 +02:00
Zeev Suraski
38c337f22e Remove year range from copyright notice 2019-01-30 11:00:23 +02:00
Zeev Suraski
9afce019e0 Future-proof email addresses 2018-11-01 18:35:32 +02:00
Zeev Suraski
67e0138c0d Future-proof email addresses... 2018-11-01 18:30:28 +02:00
Nikita Popov
74235ca5f3 Bump minimum libxml version to 2.7.6
Released Oct 2009, part of RHEL 6.
2018-09-23 15:51:09 +02:00
Peter Kokot
8d3f8ca12a Remove unused Git attributes ident
The $Id$ keywords were used in Subversion where they can be substituted
with filename, last revision number change, last changed date, and last
user who changed it.

In Git this functionality is different and can be done with Git attribute
ident. These need to be defined manually for each file in the
.gitattributes file and are afterwards replaced with 40-character
hexadecimal blob object name which is based only on the particular file
contents.

This patch simplifies handling of $Id$ keywords by removing them since
they are not used anymore.
2018-07-25 00:53:25 +02:00
Xinchen Hui
a6519d0514 year++ 2018-01-02 12:57:58 +08:00
Sammy Kaye Powers
9e29f841ce Update copyright headers to 2017 2017-01-02 09:30:12 -06:00
Lior Kaplan
ed35de784f Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Happy new year (Update copyright to 2016)
2016-01-01 19:48:25 +02:00
Lior Kaplan
49493a2dcf Happy new year (Update copyright to 2016) 2016-01-01 19:21:47 +02:00
Felipe Pena
35a68c276d - Fix merge 2015-02-16 13:09:40 -02:00
Felipe Pena
a80ad10d9b - Fix merge 2015-02-16 12:21:20 -02:00
Felipe Pena
76a505f09b Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  - Fixed bug #67427 (SoapServer cannot handle large messages) patch by: brandt at docoloc dot de
  Update NEWS
2015-02-16 12:08:26 -02:00
Felipe Pena
40c60b8212 - Fixed bug #67427 (SoapServer cannot handle large messages) patch by: brandt at docoloc dot de 2015-02-16 12:08:07 -02:00
Xinchen Hui
fc33f52d8c bump year 2015-01-15 23:27:30 +08:00
Xinchen Hui
73c1be2653 Bump year 2015-01-15 23:26:03 +08:00
Anatol Belski
bdeb220f48 first shot remove TSRMLS_* things 2014-12-13 23:06:14 +01:00
Anatol Belski
c00424e427 bring back all the TSRMLS_FETCH() stuff
for better comparability with the mainstream
2014-10-15 09:37:55 +02:00
Anatol Belski
4fe9395678 cleanup TSRMLS_FETCH in ext/soap 2014-09-26 21:12:31 +02:00
Johannes Schlüter
d0cb715373 s/PHP 5/PHP 7/ 2014-09-19 18:33:14 +02:00
Xinchen Hui
c081ce628f Bump year 2014-01-03 11:08:10 +08:00
Xinchen Hui
47c9027772 Bump year 2014-01-03 11:06:16 +08:00
Xinchen Hui
c0d060f5c0 Bump year 2014-01-03 11:04:26 +08:00
Johannes Schlüter
1e9bc56775 Merge branch 'PHP-5.3' into PHP-5.4 2013-02-21 15:10:15 +01:00
Johannes Schlüter
fcd4b5335a Fix TSRM (after afc1debb) 2013-02-21 15:08:58 +01:00
Dmitry Stogov
c737b89473 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed external entity loading

Conflicts:
	ext/libxml/libxml.c
	ext/libxml/php_libxml.h
2013-02-20 22:27:41 +04:00
Dmitry Stogov
8e76d0404b Fixed external entity loading 2013-02-20 22:14:59 +04:00
Dmitry Stogov
4b900f4831 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Proper bit reset code
2013-02-13 22:07:21 +04:00
Dmitry Stogov
188c196d4d Proper bit reset code 2013-02-13 22:06:37 +04:00
Dmitry Stogov
1a18e84822 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Disabled external entities loading
2013-02-07 16:09:12 +04:00
Dmitry Stogov
afe98b7829 Disabled external entities loading 2013-02-07 16:07:05 +04:00
Xinchen Hui
0a7395e009 Happy New Year 2013-01-01 16:28:54 +08:00