#
ab989441 |
| 22-Feb-2021 |
Nikita Popov |
Fix trampoline leak on dynamic static call of non-static method Fixes oss-fuzz #30317.
|
#
6dd85f83 |
| 22-Feb-2021 |
Nikita Popov |
Fixed bug #80781 zend_find_array_dim_slow() may throw, make sure to handle this. This backports the code we already use for this on PHP-8.0, and also backports an exception check tha
Fixed bug #80781 zend_find_array_dim_slow() may throw, make sure to handle this. This backports the code we already use for this on PHP-8.0, and also backports an exception check that makes this easier to catch.
show more ...
|
#
7b7d9983 |
| 15-Feb-2021 |
Nikita Popov |
Fix symtable cache being used while cleaning symtable We need to first clean the symtable and then check whether a cache slot is available for it. Otherwise, it may happen that a destruc
Fix symtable cache being used while cleaning symtable We need to first clean the symtable and then check whether a cache slot is available for it. Otherwise, it may happen that a destructor runs while cleaning the table and uses up all the remaining slots in the cache. This is particularly insidious because once we overflow the cache, the first pointer we modify is symtable_cache_ptr, making it hard to understand what happened after the fact. Fixes oss-fuzz #30815.
show more ...
|
#
b10416a6 |
| 30-Nov-2020 |
Nikita Popov |
Deprecate passing null to non-nullable arg of internal function This deprecates passing null to non-nullable scale arguments of internal functions, with the eventual goal of making the b
Deprecate passing null to non-nullable arg of internal function This deprecates passing null to non-nullable scale arguments of internal functions, with the eventual goal of making the behavior consistent with userland functions, where null is never accepted for non-nullable arguments. This change is expected to cause quite a lot of fallout. In most cases, calling code should be adjusted to avoid passing null. In some cases, PHP should be adjusted to make some function arguments nullable. I have already fixed a number of functions before landing this, but feel free to file a bug if you encounter a function that doesn't accept null, but probably should. (The rule of thumb for this to be applicable is that the function must have special behavior for 0 or "", which is distinct from the natural behavior of the parameter.) RFC: https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_arg Closes GH-6475.
show more ...
|
#
d80d9185 |
| 11-Feb-2021 |
Nikita Popov |
Don't throw additional Error in require_once if exception already thrown As pointed out in comments on bug #66216.
|
#
ef516481 |
| 10-Feb-2021 |
Dmitry Stogov |
Use zend_type.ce_cache__ptr for caching class resulution during argument/result type checks
|
#
4b79dba9 |
| 09-Feb-2021 |
Dmitry Stogov |
Added Inheritance Cache. This is a new transparent technology that eliminates overhead of PHP class inheritance. PHP classes are compiled and cached (by opcahce) separately, howeve
Added Inheritance Cache. This is a new transparent technology that eliminates overhead of PHP class inheritance. PHP classes are compiled and cached (by opcahce) separately, however their "linking" was done at run-time - on each request. The process of "linking" may involve a number of compatibility checks and borrowing methods/properties/constants form parent and traits. This takes significant time, but the result is the same on each request. Inheritance Cache performs "linking" for unique set of all the depending classes (parent, interfaces, traits, property types, method types involved into compatibility checks) once and stores result in opcache shared memory. As a part of the this patch, I removed limitations for immutable classes (unresolved constants, typed properties and covariant type checks). So now all classes stored in opcache are "immutable". They may be lazily loaded into process memory, if necessary, but this usually occurs just once (on first linking). The patch shows 8% improvement on Symphony "Hello World" app.
show more ...
|
#
d4aff254 |
| 09-Feb-2021 |
Nikita Popov |
Use E_ERROR to report arginfo/zpp mismatch When E_CORE_ERROR is used, we don't get correct file/line information.
|
#
3e01f5af |
| 15-Jan-2021 |
Nikita Popov |
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
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.
show more ...
|
#
973138f3 |
| 06-Jan-2021 |
Nikita Popov |
Add support for union types for internal functions This closes the last hole in the supported types for internal function arginfo types. It's now possible to represent unions of mult
Add support for union types for internal functions This closes the last hole in the supported types for internal function arginfo types. It's now possible to represent unions of multiple classes. This is done by storing them as TypeA|TypeB and PHP will then convert this into an appropriate union type list. Closes GH-6581.
show more ...
|
#
22793884 |
| 03-Dec-2020 |
Nikita Popov |
Remove some INDIRECT handling in VM
|
#
27e25088 |
| 21-Dec-2020 |
Nikita Popov |
Fix bug #80537 This is an unavoidable breaking change to both the type and parameter name. The assertion that was supposed to prevent this was overly lax and accepted any ob
Fix bug #80537 This is an unavoidable breaking change to both the type and parameter name. The assertion that was supposed to prevent this was overly lax and accepted any object type for string parameters.
show more ...
|
#
77325c44 |
| 04-Dec-2020 |
Nikita Popov |
Fix removal of type source during unserialization Missed a check for info in this code. Add it, and add an assertion in type source removal to make it easier to catch this issue.
Fix removal of type source during unserialization Missed a check for info in this code. Add it, and add an assertion in type source removal to make it easier to catch this issue. Fixes oss-fuzz #28208 and #28257.
show more ...
|
#
841b00f6 |
| 30-Nov-2020 |
Dmitry Stogov |
Preallocate stack space for JIT in execute_ex() to eliminate JIT prologue/epilogue.
|
#
085e16c3 |
| 30-Oct-2020 |
Nikita Popov |
Fix signed integer overflow Fixes oss-fuzz #26763.
|
#
078df4d1 |
| 21-Oct-2020 |
Nikita Popov |
Don't allow passing unknown named params to class without ctor See also https://externals.io/message/112083. Closes GH-6364.
|
Revision tags: php-7.4.11, php-7.3.23, php-8.0.0beta4, php-7.4.11RC1, php-7.3.23RC1, php-8.0.0beta3, php-7.4.10, php-7.3.22, php-8.0.0beta2, php-7.3.22RC1, php-7.4.10RC1, php-8.0.0beta1, php-7.4.9, php-7.2.33, php-7.3.21, php-8.0.0alpha3, php-7.4.9RC1, php-7.3.21RC1 |
|
#
12306728 |
| 16-Jul-2020 |
Sammy Kaye Powers |
Add system ID entropy API The `zend_system_id` is a (true global) system ID that fingerprints a process state. When extensions add engine hooks during MINIT/startup, entropy is added the sys
Add system ID entropy API The `zend_system_id` is a (true global) system ID that fingerprints a process state. When extensions add engine hooks during MINIT/startup, entropy is added the system ID for each hook. This allows extensions to identify that changes have been made to the engine since the last PHP process restart. Closes GH-5871
show more ...
|
#
34bb5ba2 |
| 18-Sep-2020 |
Nikita Popov |
Remove support for EXT_NOP This is an annoying edge case that regularly gets broken. As we're not aware of significant users of this API, and there are other ways to hook this, remov
Remove support for EXT_NOP This is an annoying edge case that regularly gets broken. As we're not aware of significant users of this API, and there are other ways to hook this, remove support for EXT_NOP.
show more ...
|
#
e3d0bc0a |
| 17-Sep-2020 |
Nikita Popov |
Fixed bug #80109 Skip over leading EXT_NOP, if it exists.
|
#
7e61c2ed |
| 15-Sep-2020 |
Nikita Popov |
Fix uninitialized run-time cache when resolving named param defaults Fixes oss-fuzz #25676.
|
#
8f93709d |
| 15-Sep-2020 |
Dmitry Stogov |
micro-optimization
|
#
57a4a2c5 |
| 14-Sep-2020 |
Nikita Popov |
Fixed bug #80096 We shouldn't assume that call->prev_execute_data is NULL here. The value needs to be preserved for call chains.
|
#
b7fe1b66 |
| 09-Sep-2020 |
Nikita Popov |
Make argument type error message consistent for variadics If an argument error refers to a variadic argument, we normally do not print the name of the variadic (as it is not referring to
Make argument type error message consistent for variadics If an argument error refers to a variadic argument, we normally do not print the name of the variadic (as it is not referring to an individual argument, but to the collection of all of them). However, this was not the case for the userland argument type error message, which did it's own formatting. Closes GH-6101.
show more ...
|
#
7b0a0531 |
| 10-Sep-2020 |
Dmitry Stogov |
JIT for ASSIGN_OBJ
|
#
e9b47df1 |
| 10-Sep-2020 |
Dmitry Stogov |
Fixed 32-bit JIT
|