Ilija Tovilo
9a90bd7054
Deprecate ${} string interpolation
...
https://wiki.php.net/rfc/deprecate_dollar_brace_string_interpolation
2022-05-05 10:14:56 +02:00
Dmitry Stogov
45d7695b5d
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed tests
2022-04-26 08:32:50 +03:00
Dmitry Stogov
e9d65c8e2b
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed tests
2022-04-26 08:32:28 +03:00
Dmitry Stogov
3564eaff42
Fixed tests
2022-04-26 08:31:42 +03:00
Dmitry Stogov
27efd125ed
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix ISSET_ISEMPTY_VAR missoptimization
2022-04-25 13:31:40 +03:00
Dmitry Stogov
948ef10dd0
Fix ISSET_ISEMPTY_VAR missoptimization
...
This fixes oss-fuzz #46909
2022-04-25 13:31:01 +03:00
Dmitry Stogov
73514d6e4f
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Reorder optimization passes to avoid miss-optimization
2022-04-25 13:12:03 +03:00
Dmitry Stogov
1aa5e9392d
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Reorder optimization passes to avoid miss-optimization
2022-04-25 13:09:31 +03:00
Dmitry Stogov
3b735456c6
Reorder optimization passes to avoid miss-optimization
2022-04-25 13:09:05 +03:00
Dmitry Stogov
992c8061b4
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix type inference
2022-04-25 12:17:17 +03:00
Dmitry Stogov
e14dc15e13
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix type inference
2022-04-25 12:17:07 +03:00
Dmitry Stogov
3e78964742
Fix type inference
...
Use MAY_BE_NULL result (insted of empty) for ASSIGN_DIM with invalid arguments
This fixes oss-fuzz #46840
2022-04-25 12:15:55 +03:00
Dmitry Stogov
9e6eb9d5a5
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix type narrowing warning during type inference of ZEND_FETCH_DIM_W
2022-04-25 11:18:37 +03:00
Dmitry Stogov
2cff0e674d
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix type narrowing warning during type inference of ZEND_FETCH_DIM_W
2022-04-25 11:17:04 +03:00
Dmitry Stogov
8286de2fd3
Fix type narrowing warning during type inference of ZEND_FETCH_DIM_W
...
Fixes oss-fuzz #45820
2022-04-25 11:16:10 +03:00
Jakub Zelenka
436cffc971
Merge branch 'PHP-8.1'
2022-04-22 23:08:23 +01:00
Arnaud Le Blanc
f20e11cbe1
Clear recorded errors before executing shutdown functions
...
Recorded errors may be attached to the wrong cached script when a fatal error
occurs during recording. This happens because the fatal error will cause a
bailout, which may prevent the recorded errors from being freed. If an other
script is compiled after bailout, or if a class is linked after bailout, the
recorded errors will be attached to it.
This change fixes this by freeing recorded errors before executing shutdown
functions.
Fixes GH-8063
2022-04-22 18:14:08 +02:00
Ilija Tovilo
3b4eaf67ec
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fix preloading of constants containing enums
2022-04-21 11:59:15 +02:00
Ilija Tovilo
4397811db2
Fix preloading of constants containing enums
...
Fixes GH-8133
2022-04-21 11:57:12 +02:00
Dmitry Stogov
dc374a0b22
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fixed incorrect guard
2022-04-18 11:35:08 +03:00
Dmitry Stogov
c3a30544ad
JIT: Fixed incorrect guard
...
Fixes oss-fuzz #46704
2022-04-18 11:34:18 +03:00
Dmitry Stogov
6ed3b57e67
Fix incorrect constant propagation for VERIFY_RETURN_TYPE
...
Fixes oss-fuzz #46616
2022-04-18 10:33:52 +03:00
Nikita Popov
d16d251e20
Move MAY_BE_REF check into COPY_SSA_OBJ_TYPE
...
ZEND_ASSIGN is not the only place where this is relevant, so
handle it generically inside COPY_SSA_OBJ_TYPE instead.
2022-04-15 23:14:04 +02:00
Nikita Popov
5d072578cd
Don't use CE for by-ref arguments
2022-04-15 23:00:43 +02:00
Nikita Popov
41f33b9dc3
Don't use CE info from pi node for MAY_BE_REF var
...
Once again, the actual class type may be reassigned indirectly.
2022-04-15 22:36:13 +02:00
Nikita Popov
b08aac0451
Fix inference for assignment of known object to reference
...
We cannot retain the ce information in that case, we have to
assume the ce may change indirectly through the reference.
Fixes oss-fuzz #46720 .
2022-04-15 22:14:44 +02:00
Dmitry Stogov
106c908db5
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fix memory lek
2022-04-11 12:21:09 +03:00
Dmitry Stogov
8633893330
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fix memory lek
2022-04-11 12:21:02 +03:00
Dmitry Stogov
3aaf2f6f89
JIT: Fix memory lek
...
Fixes oss-fuzz #46462
2022-04-11 12:17:05 +03:00
Dmitry Stogov
ccef2bc435
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Tracing JIT: Fixed incorrect assumption about stack slot type
2022-04-11 11:45:32 +03:00
Dmitry Stogov
69bcd93190
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Tracing JIT: Fixed incorrect assumption about stack slot type
2022-04-11 11:42:56 +03:00
Dmitry Stogov
5b048dd05c
Tracing JIT: Fixed incorrect assumption about stack slot type
...
Fixes oss-fuzz #46404
2022-04-11 11:42:01 +03:00
Nikita Popov
414f7fc2bb
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Improve type narrowing fix
2022-04-10 11:22:52 +02:00
Nikita Popov
c72e9621ce
Improve type narrowing fix
...
We need to explicitly model the null return type for property
accesses on non-objects.
2022-04-10 11:22:36 +02:00
Dmitry Stogov
df0c8aaee9
JIT: Fix array clobbering by user error handler
...
Fixes oss-fuzz #46336
2022-04-04 16:47:47 +03:00
Dmitry Stogov
4f18dbeb97
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fix array clobbering by user error handler
2022-04-04 16:37:17 +03:00
Dmitry Stogov
c489e360a6
JIT: Fix array clobbering by user error handler
...
Fixes oss-fuzz #46336
2022-04-04 16:36:25 +03:00
Dmitry Stogov
d260e063a8
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Fixed reference counting inference
2022-04-04 15:34:57 +03:00
Dmitry Stogov
e721a42211
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed reference counting inference
2022-04-04 15:34:46 +03:00
Dmitry Stogov
c0bb238483
Fixed reference counting inference
...
Fixes oss-fuzz #46084
2022-04-04 15:34:02 +03:00
Dmitry Stogov
db34e2a68e
Merge branch 'PHP-8.1'
...
* PHP-8.1:
Trcing JIT: remove unchecked type guards om ROPE_* instructions
2022-04-04 15:08:01 +03:00
Dmitry Stogov
33704be5f2
Trcing JIT: remove unchecked type guards om ROPE_* instructions
...
Fixes oss-fuzz #46209
2022-04-04 15:06:35 +03:00
Dmitry Stogov
6156505697
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fixed incorrect code generation
2022-04-04 14:24:32 +03:00
Dmitry Stogov
24bb178310
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed incorrect code generation
2022-04-04 14:24:10 +03:00
Dmitry Stogov
0d44bbd212
JIT: Fixed incorrect code generation
...
Fixes oss-fuzz #46328
2022-04-04 14:20:45 +03:00
George Peter Banyard
2c2ecba063
Determine value of ZEND_MM_* during config and fix sign conversion ( #6981 )
...
Also add a new ZEND_MM_NEED_EIGHT_BYTE_REALIGNMENT definition.
This fixes many [-Wsign-conversion] warnings.
Co-authored-by: Guillaume Charifi <guillaume.charifi@sfr.fr >
Co-authored-by: Bob Weinand <bobwei9@hotmail.com >
2022-04-01 15:43:42 +01:00
Max Kellermann
b9e895bca0
Replace memcmp() with zend_string functions ( #8216 )
...
* ext/oci8: use zend_string_equals()
Eliminate duplicate code.
* main/php_variables: use zend_string_equals_literal()
Eliminate duplicate code.
* Zend/zend_string: add zend_string_equals_cstr()
Allows eliminating duplicate code.
* Zend, ext/{opcache,standard}, main/output: use zend_string_equals_cstr()
Eliminate duplicate code.
* Zend/zend_string: add zend_string_starts_with()
* ext/{opcache,phar,spl,standard}: use zend_string_starts_with()
This adds missing length checks to several callers, e.g. in
cache_script_in_shared_memory(). This is important when the
zend_string is shorter than the string parameter, when memcmp()
happens to check backwards; this can result in an out-of-bounds memory
access.
2022-03-31 16:27:58 +02:00
Dmitry Stogov
2d3415a74a
Merge branch 'PHP-8.1'
...
* PHP-8.1:
JIT: Fixed memory leak
2022-03-25 16:56:08 +03:00
Dmitry Stogov
7aac1c11ee
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
JIT: Fixed memory leak
2022-03-25 16:55:37 +03:00
Dmitry Stogov
aa352c2c54
JIT: Fixed memory leak
...
Fixes oss-fuzz #45981
2022-03-25 16:54:50 +03:00