#
9975986b |
| 16-Aug-2020 |
Máté Kocsis |
Improve error messages mentioning parameters instead of arguments Closes GH-5999
|
#
cf8d7b3e |
| 08-Sep-2020 |
Nikita Popov |
Don't handle missing value in zend_verify_arg_error() This error condition is handled separately, never reaches this function.
|
#
f5dbebd8 |
| 07-Sep-2020 |
Nikita Popov |
Accept zend_string instead of zval in zend_compile_string
|
#
8b6b2bda |
| 02-Sep-2020 |
Nikita Popov |
Fix by-ref list assign LIST_W+MAKE_REF separation Shift the responsibility for emitting MAKE_REF to the list assignment code, to make sure that LIST_W and MAKE_REF are directly adjacent,
Fix by-ref list assign LIST_W+MAKE_REF separation Shift the responsibility for emitting MAKE_REF to the list assignment code, to make sure that LIST_W and MAKE_REF are directly adjacent, and there are no opcodes in between that could modify the LIST_W result. Additionally, adjust the zend_wrong_string_offset() code to not perform a loop over opcodes and assert that the next opcode is a relevant one. The VM write-safety model requires this. This is a followup to a07c1f56aac1c0f6c8334760009b678cbf9d6138 and the full fix for oss-fuzz #25352.
show more ...
|
#
a07c1f56 |
| 02-Sep-2020 |
Nikita Popov |
Fix infinite loop on string offset during by-ref list assign There is a deeper underlying issue here, in that the opcodes violate VM write-fetch safety, but let's fix the infinite loop f
Fix infinite loop on string offset during by-ref list assign There is a deeper underlying issue here, in that the opcodes violate VM write-fetch safety, but let's fix the infinite loop first. This fixes oss-fuzz #25352.
show more ...
|
#
66c3e900 |
| 01-Sep-2020 |
Levi Morrison |
Add zend_observer API Closes GH-5857. Co-authored-by: Nikita Popov <nikita.ppv@gmail.com> Co-authored-by: Sammy Powers <sammyk@datadoghq.com>
|
#
061c708a |
| 31-Aug-2020 |
Nikita Popov |
Correctly report failure in zend_handle_undef_args() And do the check before increfing the closure object, otherwise we'd have to release it as well. Fixes oss-fuzz #25313.
|
#
b2bc2c62 |
| 28-Aug-2020 |
Nikita Popov |
Remove unnecessary cache_slot arguments zend_verify_type_error_common() no longer needs the cache_slot, so drop it there and from all users.
|
#
fa8d9b11 |
| 28-Aug-2020 |
George Peter Banyard |
Improve type declarations for Zend APIs Voidification of Zend API which always succeeded Use bool argument types instead of int for boolean arguments Use bool return type for functio
Improve type declarations for Zend APIs Voidification of Zend API which always succeeded Use bool argument types instead of int for boolean arguments Use bool return type for functions which return true/false (1/0) Use zend_result return type for functions which return SUCCESS/FAILURE as they don't follow normal boolean semantics Closes GH-6002
show more ...
|
#
a2bbd8f0 |
| 27-Aug-2020 |
Nikita Popov |
Fix leak in typed reference assignment We're only creating tmp here to compare against the existing coerced_value. We need to destroy it in all cases.
|
#
247105ae |
| 26-Aug-2020 |
Nikita Popov |
Property handle read_property exception in fetch_property_address Otherwise we leak (and corrupt uninitialized_zval).
|
#
2d087210 |
| 10-Aug-2020 |
Nikita Popov |
Fixed bug #79947 Move the FREE_OP for op_data out of the zend_binary_assign_op_dim_slow() slow path, so it can be used by the other error path as well. This makes ASSIGN_DIM_OP struc
Fixed bug #79947 Move the FREE_OP for op_data out of the zend_binary_assign_op_dim_slow() slow path, so it can be used by the other error path as well. This makes ASSIGN_DIM_OP structurally more similar to ASSIGN_DIM.
show more ...
|
#
c48b745f |
| 03-Aug-2020 |
Nikita Popov |
Promote "undefined array key" notice to warning This implements the last remaining part of the https://wiki.php.net/rfc/engine_warnings RFC. Closes GH-5927.
|
Revision tags: php-7.4.8, php-7.2.32, php-8.0.0alpha2, php-7.3.20, php-8.0.0alpha1, php-7.4.8RC1, php-7.3.20RC1, php-7.4.7, php-7.3.19, php-7.4.7RC1, php-7.3.19RC1, php-7.4.6, php-7.2.31, php-7.4.6RC1, php-7.3.18RC1, php-7.2.30, php-7.4.5, php-7.3.17 |
|
#
d92229d8 |
| 06-Apr-2020 |
Nikita Popov |
Implement named parameters From an engine perspective, named parameters mainly add three concepts: * The SEND_* opcodes now accept a CONST op2, which is the argument nam
Implement named parameters From an engine perspective, named parameters mainly add three concepts: * The SEND_* opcodes now accept a CONST op2, which is the argument name. For now, it is looked up by linear scan and runtime cached. * This may leave UNDEF arguments on the stack. To avoid having to deal with them in other places, a CHECK_UNDEF_ARGS opcode is used to either replace them with defaults, or error. * For variadic functions, EX(extra_named_params) are collected and need to be freed based on ZEND_CALL_HAS_EXTRA_NAMED_PARAMS. RFC: https://wiki.php.net/rfc/named_params Closes GH-5357.
show more ...
|
#
a6e63b42 |
| 31-Jul-2020 |
Nikita Popov |
Make check in RECV_VARIADIC more precise Fetch arg_info only once (it's always the same one...) and check ZEND_TYPE_IS_SET on it, rather than checking if *any* parameter has a type.
|
#
b2248789 |
| 29-Jul-2020 |
George Peter Banyard |
Implement 'Saner Numeric Strings' RFC: RFC: https://wiki.php.net/rfc/saner-numeric-strings This removes the -1 allow_error mode from is_numeric_string functions and replaces it by
Implement 'Saner Numeric Strings' RFC: RFC: https://wiki.php.net/rfc/saner-numeric-strings This removes the -1 allow_error mode from is_numeric_string functions and replaces it by a trailing boolean out argument to preserve BC in a couple of places. Most of the changes can be resumed to "numeric" strings which emitted a E_NOTICE now emit a E_WARNING and "numeric" strings which emitted a E_WARNING now throw a TypeError. This mostly affects: - String offsets - Arithmetic operations - Bitwise operations Closes GH-5762
show more ...
|
#
e079e753 |
| 21-Jul-2020 |
Nikita Popov |
Give zend_pass_function an arginfo Now that the ZEND_ACC_VARIADIC flag is set, we should also make sure there is a variadic arg that can be looked up.
|
#
38fb1f83 |
| 16-Jul-2020 |
Nikita Popov |
Check for missing arginfo arguments Internal functions error when too many arguments are passed. Make this part of the verification we do in debug builds. This will help avoid cases
Check for missing arginfo arguments Internal functions error when too many arguments are passed. Make this part of the verification we do in debug builds. This will help avoid cases where an argument is missing in the stubs, as recently encountered in 6d96f0f.
show more ...
|
#
f60cf0cf |
| 15-Jul-2020 |
Nikita Popov |
Remove type argument from zend_get_zval_ptr As pointed out by Levi, this is unused, and we already changed the signature of this function for PHP 8.
|
#
d30cd7d7 |
| 26-May-2020 |
Máté Kocsis |
Review the usage of apostrophes in error messages Closes GH-5590
|
#
2297a6d3 |
| 02-Jul-2020 |
George Peter Banyard |
Use dedicated function for illegal offset type error
|
#
613a56d1 |
| 09-Jul-2020 |
Nikita Popov |
Remove FREE_UNFETCHED concept In master normal FREE_OPs work like FREE_UNFETCHED_OP used to, so there is no point in keeping this distinction anymore, it's just confusing.
|
#
77acc8a0 |
| 07-Jul-2020 |
Nikita Popov |
Fixed bug #79793 Make sure the string key is not released while throwing the undefined index warning.
|
#
beb002a8 |
| 07-Jul-2020 |
Nikita Popov |
Fixed bug #79791 First throw the undefined variable warning, and then set the variable to null. Otherwise we're not guaranteed that it's actually null afterwards.
|
#
cdc4ea2a |
| 07-Jul-2020 |
Nikita Popov |
JIT support for undefined index/offset handling
|