#
a8c6c616 |
| 07-Oct-2023 |
Jakub Zelenka |
Fix GH-9921: Loading ext in FPM config does not register module handlers Closes GH-12377
|
#
af3d2f7e |
| 18-Oct-2023 |
Ilija Tovilo |
Fix double-free of doc_comment when overriding static property via trait When redeclaring an overridden static property with a trait we're removing the property from the class. However,
Fix double-free of doc_comment when overriding static property via trait When redeclaring an overridden static property with a trait we're removing the property from the class. However, because the property itself does not belong to the class we must not free its associated data. This issue is exposed by 9a250cc9d6 in PHP 8.3+ because duplicate static properties in traits are no longer skipped, but redeclared. Fixes GH-12468
show more ...
|
#
910f579f |
| 18-Sep-2023 |
Florian Sowade |
Fix GH-12207 memory leak of doc blocks of static properties When declaring the same static property with a doc block in a class and in a trait, the doc block of the property in the class
Fix GH-12207 memory leak of doc blocks of static properties When declaring the same static property with a doc block in a class and in a trait, the doc block of the property in the class is leaked. While at it, possibly fix doc comment for internal classes. Close GH-12238
show more ...
|
#
8959ff39 |
| 24-Feb-2023 |
nielsdos <7771979+nielsdos@users.noreply.github.com> |
Fix incorrect type for return value of zend_update_static_property_ex() zend_update_static_property_ex() returns a zend_result, but the return value is stored here in a bool. A bool is u
Fix incorrect type for return value of zend_update_static_property_ex() zend_update_static_property_ex() returns a zend_result, but the return value is stored here in a bool. A bool is unsigned on my system, so in case zend_update_static_property_ex() returns FAILURE (== -1) this gets converted to 1 instead. This is not a valid zend_result value. This means that (transitive) callers could mistakingly think the function succeeded while it did in fact not succeed. Fix it by changing the type to zend_result. Closes GH-10691.
show more ...
|
#
976cbba7 |
| 09-Jun-2022 |
Jakub Zelenka |
Merge branch 'PHP-8.0' into PHP-8.1
|
Revision tags: php-8.1.7RC1 |
|
#
b765d4cd |
| 21-May-2022 |
Jakub Zelenka |
Fix bug #50293 and #81713: file path checking in OpenSSL functions It introduces a single function to check file paths passed to OpenSSL functions. It expands the path, check null bytes
Fix bug #50293 and #81713: file path checking in OpenSSL functions It introduces a single function to check file paths passed to OpenSSL functions. It expands the path, check null bytes and finally does an open basedir check.
show more ...
|
#
6cda01a0 |
| 24-May-2022 |
Arnaud Le Blanc |
Disable zend_rc_debug during dtor of dl()'ed module (#8606) Newly added dl() tests trigger an assertion in ZEND_RC_DEBUG builds. This change disables zend_rc_debug to allows these tests
Disable zend_rc_debug during dtor of dl()'ed module (#8606) Newly added dl() tests trigger an assertion in ZEND_RC_DEBUG builds. This change disables zend_rc_debug to allows these tests to pass until this issue is resolved.
show more ...
|
#
f07a08df |
| 06-May-2022 |
Arnaud Le Blanc |
Fix unregistering ini entries of dynamically loaded extension (#8435) Fixes GH-8185 |
Revision tags: php-8.1.4RC1, php-8.1.3, php-8.1.2RC1, php-8.1.0 |
|
#
44e5d253 |
| 16-Nov-2021 |
Nikita Popov |
Fix inheritance of class constants if mutable data used Class constants from parents should always be directly reused, rather than re-evaluated as a separate copy. Previously this used
Fix inheritance of class constants if mutable data used Class constants from parents should always be directly reused, rather than re-evaluated as a separate copy. Previously this used to happen automatically, as we'd just inherit the class constant entry from the parent class. With mutable data there may now be a separate copy of the constant, so we need to use that copy when updating constants. Otherwise we may evaluate the same constant multiple times. Closes GH-7658.
show more ...
|
Revision tags: php-7.3.33 |
|
#
277caa1d |
| 09-Nov-2021 |
Nikita Popov |
Merge branch 'PHP-8.0' into PHP-8.1 * PHP-8.0: Add string return type to __toString() of internal classes
|
#
a551b083 |
| 09-Nov-2021 |
Nikita Popov |
Add string return type to __toString() of internal classes Same as with userland classes, automatically add a string return type to __toString() methods in internal classes, so the signa
Add string return type to __toString() of internal classes Same as with userland classes, automatically add a string return type to __toString() methods in internal classes, so the signature is compatible with Stringable.
show more ...
|
#
b0ec6223 |
| 05-Nov-2021 |
Nikita Popov |
Merge branch 'PHP-8.0' into PHP-8.1 * PHP-8.0: Implement Stringable automatically for internal classes
|
#
b302bfab |
| 05-Nov-2021 |
Nikita Popov |
Implement Stringable automatically for internal classes Requiring all internal classes (including those from 3rd-party extensions) to implement Stringable if they provide __toString()
Implement Stringable automatically for internal classes Requiring all internal classes (including those from 3rd-party extensions) to implement Stringable if they provide __toString() is too error prone. Case in point, our _ZendTestClass test class was not doing so, resulting in preloading test failures after recent changes. Instead we automatically implement Stringable, the same as we do for userland classes. We still allow explicit implementations, but ignore them (normally they would result in an error due to duplicate interface implementation). Finally, we need to be careful about not trying to implement Stringable on Stringable itself. In some cases this changes the interface order, in particular the automatic Stringable implementation will now come first.
show more ...
|
#
4bdb2718 |
| 05-Nov-2021 |
Nikita Popov |
Merge branch 'PHP-8.0' into PHP-8.1 * PHP-8.0: Don't implement Stringable on traits
|
#
d478ae73 |
| 05-Nov-2021 |
Nikita Popov |
Don't implement Stringable on traits Traits do not support interfaces, so we should not implement Stringable on them. Also check the __toString() return type in the same way oth
Don't implement Stringable on traits Traits do not support interfaces, so we should not implement Stringable on them. Also check the __toString() return type in the same way other magic methods do, otherwise we would now miss the check in the trait case.
show more ...
|
Revision tags: php-7.3.32, php-7.3.31 |
|
#
5b2ddf5a |
| 31-Aug-2021 |
Nikita Popov |
Export zend_use_resource_as_offset() Use a common implementation to generate this error message, as we do so in quite a few places dealing with array keys. |
Revision tags: php-7.3.30 |
|
#
cf6c354e |
| 17-Aug-2021 |
Nikita Popov |
Run other RSHUTDOWN handlers if one fails Motivated by bug #81316: If one RSHUTDOWN handler fails, still run the other ones. They may be doing something important... |
#
315f4094 |
| 11-Aug-2021 |
Nikita Popov |
Always use CE_CACHE, remove TYPE_HAS_CE (#7336) Currently, CE_CACHE on strings is only used with opcache interned strings. This patch extends usage to non-opcache interned strings as wel
Always use CE_CACHE, remove TYPE_HAS_CE (#7336) Currently, CE_CACHE on strings is only used with opcache interned strings. This patch extends usage to non-opcache interned strings as well. This means that most type strings can now make use of CE_CACHE even if opcache is not loaded, which allows us to remove TYPE_HAS_CE kind, and fix some discrepancies depending on whether a type stores a resolved or non-resolved name. There are two cases where CE_CACHE will not be used: * When opcache is not used and a permanent interned string (that is not an internal class name) is used as a type name during the request. In this case we can't allocate a map_ptr index for the permanent string, as it would be not be in the permanent map_ptr index space. * When opcache is used but the script is not cached (e.g. eval'd code or opcache full). If opcache is used, we can't allocate additional map_ptr indexes at runtime, because they may conflict with indexes allocated by opcache. In these two cases we would end up not using CE caching for property types (argument/return types still have the separate cache slot).
show more ...
|
#
8675380b |
| 27-Jul-2021 |
Nikita Popov |
Increment refcounts in mutable data copies For mutable_data on preloaded classes, there may be refcounted values in the constants/properties table. |
#
5a7e1a7a |
| 27-Jul-2021 |
Nikita Popov |
Don't use IMMUTABLE flag to decide whether mutable_data is used mutable_data may be used for IMMUTABLE classes, internal classes and to-be-preloaded classes. Check whether the mutable_da
Don't use IMMUTABLE flag to decide whether mutable_data is used mutable_data may be used for IMMUTABLE classes, internal classes and to-be-preloaded classes. Check whether the mutable_data map_ptr is set rather than only the IMMUTABLE flag.
show more ...
|
#
a374230c |
| 22-Jul-2021 |
Nikita Popov |
Add support for internal enums This adds support for internal enums with the same basic approach as userland enums. Enum values are stored as CONSTANT_AST and objects created during
Add support for internal enums This adds support for internal enums with the same basic approach as userland enums. Enum values are stored as CONSTANT_AST and objects created during constant updating at runtime. This means that we need to use mutable_data for internal enums. This just adds basic support and APIs, it does not include the stubs integration from #7212. Closes GH-7302.
show more ...
|
#
c4f4f1ec |
| 23-Jul-2021 |
Nikita Popov |
Share zval_make_interned_string() helper The same function was defined in zend_compile.c and zend_API.c. |
#
89d01154 |
| 23-Jul-2021 |
Nikita Popov |
Remove zend_cleanup_internal_classes() If fast_shutdown is used, then we don't need to destroy static members at all. If fast_shutdown is not used, then we already loop over classes
Remove zend_cleanup_internal_classes() If fast_shutdown is used, then we don't need to destroy static members at all. If fast_shutdown is not used, then we already loop over classes to destroy static members and static variables in methods.
show more ...
|
#
921e1052 |
| 23-Jul-2021 |
Nikita Popov |
Merge branch 'PHP-8.0' * PHP-8.0: Fix bug #66719
|
#
90ee1c36 |
| 23-Jul-2021 |
Nikita Popov |
Merge branch 'PHP-7.4' into PHP-8.0 * PHP-7.4: Fix bug #66719
|