History log of /PHP-8.1/ext/zend_test/test.c (Results 1 – 25 of 112)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 5bd04acf 11-Oct-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Workaround deprecation warning in zend_test on 8.1


# 8d2df86b 24-Nov-2023 Florian Engelhardt

Fix invalid opline in OOM handlers within ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC (#12768)

* fix segfault in `ZEND_BIND_STATIC`

In case a `ZEND_BIND_STATIC` is being executed, while

Fix invalid opline in OOM handlers within ZEND_FUNC_GET_ARGS and ZEND_BIND_STATIC (#12768)

* fix segfault in `ZEND_BIND_STATIC`

In case a `ZEND_BIND_STATIC` is being executed, while the current chunk is full,
the `zend_array_dup()` call will trigger a OOM in ZendMM which will crash, as
the opline might be a dangling pointer.

* add missing test

* `assert()`ing seems easier than trying to make the compiler to not optimize

* moved from function call to INI setting, so we can use this in other places as well

* make `assert()` work no NDEBUG builds

* document magic number

* fix segfault in `ZEND_FUNC_GET_ARGS`

In case a `ZEND_FUNC_GET_ARGS` is being executed, while the current chunk is
full, the `zend_new_array()` call will trigger a OOM in ZendMM which will crash,
as the opline might be a dangling pointer.

---------

Co-authored-by: Florian Engelhardt <florian@engelhardt.tc>

show more ...


# 78fba9cb 08-Nov-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-12628: The gh11374 test fails on Alpinelinux

Closes GH-12636.


# 9658d9ad 27-Aug-2023 ju1ius

adds failing test case for #12060

Signed-off-by: George Peter Banyard <girgias@php.net>


# 62228a25 31-Jul-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Disable global state test on Windows

It looks like the config.w32 uses CHECK_HEADER_ADD_INCLUDE to add the include
path to libxml into the search path.
That doesn't happen in zend-te

Disable global state test on Windows

It looks like the config.w32 uses CHECK_HEADER_ADD_INCLUDE to add the include
path to libxml into the search path.
That doesn't happen in zend-test.
To add to the Windows trouble, libxml is statically linked in, ext/libxml can
only be built statically but ext/zend-test can be built both statically and
dynamically.
So the regression tests won't work in all possible configurations anyway on Windows.
All of this is no problem on Linux because it just uses dynamic linking
and pkg-config, without any magic.

Signed-off-by: Ben Ramsey <ramsey@php.net>

show more ...


# 93b43ac2 31-Jul-2023 Derick Rethans

Fix broken merge


# 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 ...


# 84be9042 16-Apr-2023 Jakub Zelenka

Add missing zend_test_crash message initialization


# 0ac55e9b 15-Apr-2023 Jakub Zelenka

Add zend_test_crash funtion to segfault PHP process

This is useful for testing PHP-FPM handling of crashed children.

Closes GH-11082


# aead0c80 09-Mar-2023 Derick Rethans

Fixed strict zpp arginfo test


# f8891f28 09-Mar-2023 Derick Rethans

Fixed strict zpp arginfo test


# 8a9b80cf 07-Mar-2023 Derick Rethans

Add test case


# ff62d117 04-Mar-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-8646: Memory leak PHP FPM 8.1

Fixes GH-8646
See https://github.com/php/php-src/issues/8646 for thorough discussion.

Interned strings that hold class entries can get a cor

Fix GH-8646: Memory leak PHP FPM 8.1

Fixes GH-8646
See https://github.com/php/php-src/issues/8646 for thorough discussion.

Interned strings that hold class entries can get a corresponding slot in map_ptr for the CE cache.
map_ptr works like a bump allocator: there is a counter which increases to allocate the next slot in the map.

For class name strings in non-opcache we have:
- on startup: permanent + interned
- on request: interned
For class name strings in opcache we have:
- on startup: permanent + interned
- on request: either not interned at all, which we can ignore because they won't get a CE cache entry
or they were already permanent + interned
or we get a new permanent + interned string in the opcache persistence code

Notice that the map_ptr layout always has the permanent strings first, and the request strings after.
In non-opcache, a request string may get a slot in map_ptr, and that interned request string
gets destroyed at the end of the request. The corresponding map_ptr slot can thereafter never be used again.
This causes map_ptr to keep reallocating to larger and larger sizes.

We solve it as follows:
We can check whether we had any interned request strings, which only happens in non-opcache.
If we have any, we reset map_ptr to the last permanent string.
We can't lose any permanent strings because of map_ptr's layout.

Closes GH-10783.

show more ...


# 7e8ad578 20-Jun-2022 Christoph M. Becker

Fix bad merge (b8dee9b3fc0f8f6371313cc54c642a5c9fc8bcd9)

# 6d96f39a 01-Jun-2022 Máté Kocsis

Get rid of invalid assertion and cleanup zend_call_method

Closes GH-8672

# 01d84545 31-May-2022 Sara Golemon

Verify internal types before abandoning call frame

An internal caller executing a builtin method with
a static return type will lose context if we drop
our frame before performing th

Verify internal types before abandoning call frame

An internal caller executing a builtin method with
a static return type will lose context if we drop
our frame before performing the validation.

show more ...

Revision tags: php-8.1.7RC1
# 6465f3ed 20-May-2022 Arnaud Le Blanc

Merge branch 'PHP-8.0' into PHP-8.1

* PHP-8.0:
XFAIL tests (GH-8588)
Stop closing stderr and stdout streams (#8569)


# fa78e177 16-May-2022 Levi Morrison

Stop closing stderr and stdout streams (#8569)

Extensions may (and do) write to stderr in mshutdown and similar. In
the best case, with the stderr stream closed, it's just swallowed.

Stop closing stderr and stdout streams (#8569)

Extensions may (and do) write to stderr in mshutdown and similar. In
the best case, with the stderr stream closed, it's just swallowed.

However, some libraries will do things like try to detect color, and
these will outright fail and cause an error path to be taken.

show more ...

# 510061b5 03-May-2022 Máté Kocsis

Merge branch 'PHP-8.0' into PHP-8.1

* PHP-8.0:
Fix get_function_or_method_name when included file is scoped


# 74924ada 03-May-2022 vajexal <72415539+vajexal@users.noreply.github.com>

Fix get_function_or_method_name when included file is scoped (#8467)

Revision tags: php-8.1.4RC1, php-8.1.3
# 070012d6 09-Feb-2022 Tim Düsterhus

Add tests for function parameter attributes to ext/zend_test

These tests verify the correct workings of the previous fixes:

- Parameter attributes for native functions should not le

Add tests for function parameter attributes to ext/zend_test

These tests verify the correct workings of the previous fixes:

- Parameter attributes for native functions should not leak memory.
- Parameter attributes for native functions should behave as expected.

show more ...

Revision tags: php-8.1.2RC1, php-8.1.0, php-7.3.33, php-7.3.32
# 51a9c68e 21-Oct-2021 Bob Weinand

Merge branch 'PHP-8.0' into PHP-8.1


# 471102ed 21-Oct-2021 Bob Weinand

Add ZEND_API for weakmap functionality via zend_weakrefs_hash_add/del

Closes GH-7600.

Revision tags: php-7.3.31
# 12b0f1b7 13-Sep-2021 Bob Weinand

Fix #81435 Observer current_observed_frame may point to an old (overwritten) frame

Ensure current_observed_frame always points to an actually observed frame.
This solution has a caveat o

Fix #81435 Observer current_observed_frame may point to an old (overwritten) frame

Ensure current_observed_frame always points to an actually observed frame.
This solution has a caveat of being O(stack size), with the worst case occurring if there are a lot of frames between the current and previous observed frames.
An O(1) solution would require keeping track of the previous observed frame, which would require some additional frame attached metadata, which is best not attempted in an already released version.

show more ...

# 32d48212 31-Aug-2021 Nikita Popov

Support generating internal enum decl from stubs

12345