#
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 ...
|
#
855dd276 |
| 31-Jul-2023 |
Derick Rethans |
Fixed another broken merge (sorry)
|
#
dcc42955 |
| 31-Jul-2023 |
Derick Rethans |
Fixed artifacts from merging
|
#
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 ...
|
#
9bcdf219 |
| 31-Mar-2023 |
Ilija Tovilo |
Resolve open_basedir paths on ini update Closes GH-10987
|
#
d8696f92 |
| 17-Jul-2023 |
George Peter Banyard |
[RFC] Path to Saner Increment/Decrement operators (#10358) * Add behavioural tests for incdec operators * Add support to ++/-- for objects castable to _IS_NUMBER * Add str_
[RFC] Path to Saner Increment/Decrement operators (#10358) * Add behavioural tests for incdec operators * Add support to ++/-- for objects castable to _IS_NUMBER * Add str_increment() function * Add str_decrement() function RFC: https://wiki.php.net/rfc/saner-inc-dec-operators Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com> Co-authored-by: Arnaud Le Blanc <arnaud.lb@gmail.com>
show more ...
|
#
7b355e8d |
| 04-Jul-2023 |
Ilija Tovilo |
Revert "Merge branch 'PHP-8.2'" This reverts commit 45a3f178dc226b69f5d72f10285bc2ad139b2c1c, reversing changes made to b2a54bc6af4bf645b5bb2601621c12b31bfbff0c.
|
#
d7ab0ff0 |
| 03-Jul-2023 |
Máté Kocsis |
Fix GH-9967 Add support for generating custom function, class const, and property attributes in stubs
|
#
3906bccc |
| 27-Jun-2023 |
Máté Kocsis |
Add support for typed class constants in stubs
|
#
80e90ad7 |
| 07-Mar-2023 |
George Peter Banyard |
Add number or str ZPP macros
|
#
b3e33be4 |
| 21-Mar-2023 |
Ilija Tovilo |
Forward shutdown exceptions to user error handlers Fixes GH-10695 Closes GH-110905
|
#
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
|
#
2ef1930a |
| 06-Apr-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix number of elements after packed hash filling (#11022) After a hash filling routine the number of elements are set to the fill index. However, if the fill index is larger than the num
Fix number of elements after packed hash filling (#11022) After a hash filling routine the number of elements are set to the fill index. However, if the fill index is larger than the number of elements, the number of elements are no longer correct. This is observable at least via count() and var_dump(). E.g. the attached test case would incorrectly show int(17) instead of int(11). Solve this by only increasing the number of elements by the actual number that got added. Instead of adding a variable that increments per iteration, I wanted to save some cycles in the iteration and simply compute the number of added elements at the end. I discovered this behaviour while fixing GH-11016, where this filling routine is easily exposed to userland via a specialised VM path [1]. Since this seems to be more a general problem with the macros, and may be triggered outside of the VM handlers, I fixed it in the macros instead of modifying the VM to fixup the number of elements. [1] https://github.com/php/php-src/blob/b2c5acbb010f4bbc7ea9b53ba9bc81d672dd0f34/Zend/zend_vm_def.h#L6132-L6141
show more ...
|
#
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 ...
|
#
3b066188 |
| 07-Mar-2023 |
George Peter Banyard |
RFC: Saner array_(sum|product)() (#10161) RFC: https://wiki.php.net/rfc/saner-array-sum-product Moreover, the internal fast_add_function() function was removed.
|
#
145602f3 |
| 28-Feb-2023 |
Bob Weinand |
Fix bug in zend_test assuming null not being the first type (I agree that null should come last, but then it should rather throw with a proper message than emit an undefined key warning.)
Fix bug in zend_test assuming null not being the first type (I agree that null should come last, but then it should rather throw with a proper message than emit an undefined key warning.) Signed-off-by: Bob Weinand <bobwei9@hotmail.com>
show more ...
|
#
7fccdf72 |
| 10-Feb-2023 |
SATO Kentaro |
Add support for generating namespaced constant Closes GH-10552
|
#
0c9181b6 |
| 29-Jan-2023 |
George Peter Banyard |
Add function in zend_test to check UTF8 flag is added Also add test to check what strings are marked as having the flag
|
#
1fbe8559 |
| 19-Jan-2023 |
Bob Weinand |
Honor constant expressions instead of just taking the last constant encountered in stubs As an example: should be translated to: ZVAL_LONG(&attribute_Attribute_class_test_arg0, ZEND_
Honor constant expressions instead of just taking the last constant encountered in stubs As an example: should be translated to: ZVAL_LONG(&attribute_Attribute_class_test_arg0, ZEND_ATTRIBUTE_TARGET_FUNCTION | ZEND_ATTRIBUTE_TARGET_METHOD);
show more ...
|
#
3e48e52d |
| 29-Dec-2022 |
Tim Düsterhus |
Register parameter attributes via stub in ext/zend_test (#10183)
|
#
a11c8a30 |
| 16-Dec-2022 |
Arnaud Le Blanc |
Limit stack size (#9104)
|
#
fdd088fc |
| 03-Oct-2022 |
Martin Schröder |
Properly deal with internal attributes used on promoted properties. Closes GH-9661
|
#
e4f23769 |
| 26-Sep-2022 |
Máté Kocsis |
Improve string class constant code generation (#9577) Using strlen() will make sure that non-constant values can also be used.
|
Revision tags: php-8.2.0RC1, php-8.1.10, php-8.0.23, php-8.0.23RC1, php-8.1.10RC1, php-8.2.0beta3 |
|
#
3e362f51 |
| 13-Aug-2022 |
George Peter Banyard |
Add zend_string INI validators Currently we only have validators for char* which is rather annoying as INI settings are saved as zend_string* in the first place Closes GH-9328
|