History log of /PHP-8.4/ext/xmlreader/php_xmlreader.c (Results 1 – 25 of 174)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 5c124939 08-Oct-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-16292: Segmentation fault in ext/xmlreader/php_xmlreader.c:1282

3 issues:
1) RETURN_NULL() was used via the macro NODE_GET_OBJ(), but the function
returns false on failure

Fix GH-16292: Segmentation fault in ext/xmlreader/php_xmlreader.c:1282

3 issues:
1) RETURN_NULL() was used via the macro NODE_GET_OBJ(), but the function
returns false on failure and cannot return null according to its
stub.
2) The struct layout of the different implementors of libxml only
guarantees overlap between the node pointer and the document
reference, so accessing the std zend_object may not work.
3) DOC_GET_OBJ() wasn't using ZSTR_VAL().

Closes GH-16307.

show more ...


# f4f2fe51 28-Sep-2024 Máté Kocsis

Fix property_exists() and unset() for XMLReader (#16079)


# 888eb370 14-Sep-2024 Peter Kokot

Fix -Wundef/C4668 warnings (#15853)

- ZTS is either undefined or defined (to 1)
- PHP_WIN32 is either undefined or defined (to 1)
- HAVE_LIBEDIT is either undefined or defined (to 1)


# 25d76162 06-Sep-2024 Bob Weinand

Make internal run_time_cache a persistent allocation (#15040)

We also add zend_map_ptr_static, so that we do not incur the overhead of constantly recreating the internal run_time_cache point

Make internal run_time_cache a persistent allocation (#15040)

We also add zend_map_ptr_static, so that we do not incur the overhead of constantly recreating the internal run_time_cache pointers on each request.
This mechanism might be extended for mutable_data of internal classes too.

show more ...


# 5853cdb7 20-Aug-2024 Gina Peter Bnayard

Use "must not" instead of "cannot" wording


# e7c4d54d 18-Aug-2024 Gina Peter Bnayard

Use new helper function for "cannot be empty" ValueErrors


# e0a2e2e5 28-Jul-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-15123: var_dump doesn't actually work on XMLReader (#15130)


# a26ec58f 16-Jul-2024 Ilija Tovilo

De-duplicate readonly property modification error message (#14972)


# 4cab7f90 27-Jun-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

[RFC] Implement XMLReader::fromUri() and XMLReader::fromString()


# acf27628 17-Apr-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

[RFC] Add stream open functions to XML{Reader,Writer}

RFC: https://wiki.php.net/rfc/xmlreader_writer_streams


# 11accb5c 25-Jun-2024 Arnaud Le Blanc

Preferably include from build dir (#13516)

* Include from build dir first

This fixes out of tree builds by ensuring that configure artifacts are included
from the build dir.

Preferably include from build dir (#13516)

* Include from build dir first

This fixes out of tree builds by ensuring that configure artifacts are included
from the build dir.

Before, out of tree builds would preferably include files from the src dir, as
the include path was defined as follows (ignoring includes from ext/ and sapi/) :

-I$(top_builddir)/main
-I$(top_srcdir)
-I$(top_builddir)/TSRM
-I$(top_builddir)/Zend
-I$(top_srcdir)/main
-I$(top_srcdir)/Zend
-I$(top_srcdir)/TSRM
-I$(top_builddir)/

As a result, an out of tree build would include configure artifacts such as
`main/php_config.h` from the src dir.

After this change, the include path is defined as follows:

-I$(top_builddir)/main
-I$(top_builddir)
-I$(top_srcdir)/main
-I$(top_srcdir)
-I$(top_builddir)/TSRM
-I$(top_builddir)/Zend
-I$(top_srcdir)/Zend
-I$(top_srcdir)/TSRM

* Fix extension include path for out of tree builds

* Include config.h with the brackets form

`#include "config.h"` searches in the directory containing the including-file
before any other include path. This can include the wrong config.h when building
out of tree and a config.h exists in the source tree.

Using `#include <config.h>` uses exclusively the include path, and gives
priority to the build dir.

show more ...


# dd4e2ef5 15-Jun-2024 Peter Kokot

Update ext/xmlreader dependencies (#14572)

- ext/dom is optional (using HAVE_DOM for cases when dom is build as
a shared extension to make it required in that case)
- ext/libxml is

Update ext/xmlreader dependencies (#14572)

- ext/dom is optional (using HAVE_DOM for cases when dom is build as
a shared extension to make it required in that case)
- ext/libxml is required

show more ...


# 15813d69 10-May-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-14183: XMLReader::open() can't be overridden

We should only return the override if the internal static method is matched.

Closes GH-14194.


# b3700e29 20-Apr-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Simplify prop handler of XMLReader (#14023)

As XMLReader only exposes a single class, and the property handlers are
statically set, we don't need to store the pointer to the property

Simplify prop handler of XMLReader (#14023)

As XMLReader only exposes a single class, and the property handlers are
statically set, we don't need to store the pointer to the property
handler table inside the object.
This simplifies the code and reduces the memory required for XMLReader.

show more ...


# 63bb04e5 09-Mar-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Simplify DOM_RET_OBJ macro


# 6d721b21 25-Feb-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Use string literal equality helper function in xmlreader_get_method


# da1a9402 25-Feb-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Set xmlreader property handler hash size to a precalculated value


# 7f080d35 25-Feb-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Don't put xmlreader prop handler data on the heap


# 06a89a91 25-Feb-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Make readonly error message consistent


# b68b55be 25-Feb-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Remove unused write_func in php_xmlreader.c


# 586adf96 25-Feb-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Remove unimplemented, unreferenced function from php_xmlreader.c


# 900f0cab 24-Oct-2023 icy17 <1061499390@qq.com>

Fix null pointer dereferences in case of allocation failure

Closes GH-12506.


# c283c3ab 15-Jul-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

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 par

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().

show more ...


# cad47be8 30-Jun-2023 Bob Weinand

Fix GH-11548 (Argument corruption when calling XMLReader::open or XMLReader::XML non-statically with observer active)


# ec10b28d 27-Jan-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix array overrun when appending slash to paths

Fix it by extending the array sizes by one character. As the input is
limited to the maximum path length, there will always be place to ap

Fix array overrun when appending slash to paths

Fix it by extending the array sizes by one character. As the input is
limited to the maximum path length, there will always be place to append
the slash. As the php_check_specific_open_basedir() simply uses the
strings to compare against each other, no new failures related to too
long paths are introduced.
We'll let the DOM and XML case handle a potentially too long path in the
library code.

show more ...


1234567