Niels Dossche
2c53d63197
Fix GH-10801: Named arguments in CTE functions cause a segfault
...
Fixes GH-10801
Named arguments are not supported by the constant evaluation routine, in
the sense that they are ignored. This causes two issues:
- It causes a crash because not all oplines belonging to the call are
removed, which results in SEND_VA{L,R} which should've been removed.
- It causes semantic issues (demonstrated in the test case).
This case never worked anyway, leading to crashes or incorrect behaviour,
so just prevent CTE of calls with named parameters for now.
We can choose to support it later, but introducing support for this in
a stable branch seems too dangerous.
This patch does not change the removal of SEND_* opcodes in remove_call
because the crash bug can't be triggered anymore with this patch as
there are no named parameters anymore and no variadic CTE functions
exist.
Closes GH-10811.
2023-03-10 19:22:44 +01:00
Dmitry Stogov
4d4a53beee
Fix incorrect optimization of ASSIGN_OP may lead to incorrect result (sub assign -> pre dec conversion for null values)
2023-01-09 13:51:57 +03:00
Dmitry Stogov
f31f464cec
Fix memory leak
...
Fixes oss-fuzz #52999
2022-11-07 11:07:58 +03:00
Dmitry Stogov
4845d7026a
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
typo
2022-08-29 17:13:16 +03:00
Dmitry Stogov
263a07e5b0
typo
2022-08-29 17:12:57 +03:00
Dmitry Stogov
172ac0a48d
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix memory leak
2022-08-29 14:54:40 +03:00
Dmitry Stogov
4135e6011c
Fix memory leak
...
Fixes oss-fuzz #50616
2022-08-29 14:53:48 +03:00
Dmitry Stogov
95befc786a
Fix type inference
...
Fixes oss-fuzz #50272
2022-08-22 21:11:39 +03:00
Dmitry Stogov
4b19b85eb6
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix SSA reconstruction when body of "foreach" loop is removed
2022-08-01 14:01:11 +03:00
Dmitry Stogov
af1a7b7b72
Fix SSA reconstruction when body of "foreach" loop is removed
...
Fixes oss-fuzz #49483
2022-08-01 14:00:19 +03:00
Dmitry Stogov
d50875c822
Fix type inference
...
Fixes oss-fuzz #49423 and #49474
2022-07-25 15:53:06 +03:00
Dmitry Stogov
82d3ad64df
Fix type inference
...
Fixes oss-fuzz #48908
2022-07-18 14:20:06 +03:00
Dmitry Stogov
b734d45626
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix type inference for FETCH_DI_UNSET
2022-07-18 13:15:03 +03:00
Dmitry Stogov
bd30eff5de
Fix type inference for FETCH_DI_UNSET
...
Fixes oss-fuzz #48507
2022-07-18 13:14:15 +03:00
Dmitry Stogov
ee17296e7b
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix memory leak
2022-06-20 11:00:32 +03:00
Dmitry Stogov
229e80c6ef
Fix memory leak
...
This fixes oss-fuzz #48051
2022-06-20 10:59:37 +03:00
Dmitry Stogov
729be469ae
Fix type inference
...
This dixes oss-fuzz #47921
2022-06-14 11:59:35 +03:00
Dmitry Stogov
1b45efb6fb
Fix type inference
...
This fixes oss-fuzz #47920
2022-06-14 10:20:45 +03:00
Dmitry Stogov
b86c6245cc
Fix type inference
...
This fixes oss-fuzz #47777
2022-06-06 11:13:53 +03:00
Dmitry Stogov
c430116a11
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix memory leak
2022-05-16 13:48:40 +03:00
Dmitry Stogov
84ea0aa684
Fix memory leak
...
This fixes oss-fuzz #47448
2022-05-16 13:45:31 +03:00
Dmitry Stogov
aad5fbac85
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix type inference
2022-05-16 12:42:04 +03:00
Dmitry Stogov
05375602a7
Fix type inference
...
This fixes oss-fuzz #47422
2022-05-16 12:41:25 +03:00
Dmitry Stogov
84c1e99ecf
Fix type inference
...
This fizes oss-fuzz #47044
2022-05-11 12:39:26 +03:00
Dmitry Stogov
f1fc58ed8d
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix type inference
2022-05-11 12:09:53 +03:00
Dmitry Stogov
3f1e1b9ddf
Fix type inference
...
This fixes oss-fuzz #47049
2022-05-11 12:09:11 +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
948ef10dd0
Fix ISSET_ISEMPTY_VAR missoptimization
...
This fixes oss-fuzz #46909
2022-04-25 13:31:01 +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
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
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
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
770a544af4
Optimizer: Fix inorrect constant substitution in FETCH_LIST_R
...
Fixes oss-fuzz #45429
2022-03-11 14:30:27 +03:00
Dmitry Stogov
1f5562aa09
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed memory leak
2022-03-11 11:33:01 +03:00
Dmitry Stogov
151d2ac5ae
Fixed memory leak
...
Fixes oss-fuzz #45191
2022-03-11 11:32:23 +03:00
Dmitry Stogov
56d7672d56
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed incorrect DCE for FREE
2022-02-28 11:54:25 +03:00
Dmitry Stogov
78c7289f69
Fixed incorrect DCE for FREE
...
Fixes oss-fuzz #44863
2022-02-28 11:44:22 +03:00
Christoph M. Becker
33cd61c904
Fix GH-8140: Wrong first class callable by name optimization
...
When optimizing by name function calls, we must not replace
`CALLABLE_CONVERT` opcodes, but have to keep them.
Closes GH-8144.
2022-02-24 10:35:53 +01:00
Christoph M. Becker
7ea3b19331
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix GH-8074: Wrong type inference of range() result
2022-02-22 10:20:13 +01:00
Christoph M. Becker
ef80dcb80b
Fix GH-8074: Wrong type inference of range() result
...
If either the first or second operand of `range()` may be a string, we
must not exclude the possibility that the result may be an array of
longs.
Closes GH-8131.
2022-02-22 10:14:54 +01:00
Dmitry Stogov
34c2324fbf
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix too aggressive DCE that leads to memory leak
2022-01-28 12:18:47 +03:00
Dmitry Stogov
965dafe3e1
Fix too aggressive DCE that leads to memory leak
...
Fixes oss-fuzz #43738
2022-01-28 12:17:46 +03:00
Dmitry Stogov
906cb52c63
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed NAN handling in SCCP
2022-01-10 19:40:22 +03:00
Dmitry Stogov
698ac23711
Fixed NAN handling in SCCP
...
Fixes oss-fuzz #43341
2022-01-10 19:39:19 +03:00
Dmitry Stogov
b2939b636d
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix memory leak in SCCP
2021-12-24 13:10:58 +03:00
Dmitry Stogov
2b81156f2a
Fix memory leak in SCCP
...
Fixes oss-fuzz #42878
2021-12-24 13:10:22 +03:00