1
0
mirror of https://github.com/php/php-src.git synced 2026-04-29 19:23:22 +02:00
Commit Graph

126387 Commits

Author SHA1 Message Date
Nikita Popov 5d05f810d0 Reduce max input size in parser fuzzer
Still seeing stack overflows for $$$$$x style input, let's reduce
the input size limit further...
2021-10-06 19:14:20 +02:00
Dmitry Stogov 25e2cfc27b Merge branch 'PHP-8.1'
* PHP-8.1:
  XFAIL: Return types cannot be inferred through prototypes
2021-10-06 17:21:34 +03:00
Dmitry Stogov fd8dfc4248 XFAIL: Return types cannot be inferred through prototypes 2021-10-06 17:21:02 +03:00
Dmitry Stogov 33335f1f77 Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT ARM64: Fixed NaN handling
2021-10-06 16:50:52 +03:00
Dmitry Stogov 5557d15311 JIT ARM64: Fixed NaN handling 2021-10-06 16:50:25 +03:00
Dmitry Stogov 90b59094f4 Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Fixed NaN handling
2021-10-06 16:37:27 +03:00
Dmitry Stogov 6e086681f5 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  JIT: Fixed NaN handling
2021-10-06 16:36:38 +03:00
Dmitry Stogov 8a0873020a JIT: Fixed NaN handling 2021-10-06 16:35:33 +03:00
Dmitry Stogov c84c07e2db Merge branch 'PHP-8.1'
* PHP-8.1:
  Fixed type inference that may cause JIT failure
2021-10-06 14:58:47 +03:00
Dmitry Stogov 0b5d62e39c Fixed type inference that may cause JIT failure
PHP allows to override a method that returns non-reference with a method
that returns a reference. This mean that we cannot use prototypes to
predict return types of a child functions.
2021-10-06 14:55:34 +03:00
Dmitry Stogov 34ae752599 Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Fixed register clobbering
2021-10-06 12:22:14 +03:00
Dmitry Stogov 5ed654ee95 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  JIT: Fixed register clobbering
2021-10-06 12:22:06 +03:00
Dmitry Stogov f681f9075c JIT: Fixed register clobbering 2021-10-06 12:10:39 +03:00
Nikita Popov aa2f8311c6 Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix array cast type inference wrt packed arrays
2021-10-06 10:51:30 +02:00
Nikita Popov 3661c1932c Fix array cast type inference wrt packed arrays
Use KEY_LONG instead of PACKED if it's possible for the array to
be empty. It won't be packed in that case.

Fixes oss-fuzz #39650.
2021-10-06 10:50:44 +02:00
Nikita Popov 43b3cf110f Merge branch 'PHP-8.1'
* PHP-8.1:
  Don't start new block after loop free
2021-10-06 10:13:24 +02:00
Nikita Popov f455894bb6 Don't start new block after loop free
This reverts the change from 493c91c742.
Starting a new block means that in the common case where the loop var
free is not unreachable, we'll always merge back the block.

Instead fix the original problem by explicitly removing instructions
apart from the loop var free in block pass.
2021-10-06 10:13:15 +02:00
Dmitry Stogov e1a56ef6bf Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Fixed incorrect overflow detection introduced in a5e502ef4d
2021-10-06 10:19:05 +03:00
Dmitry Stogov 831a1717f6 JIT: Fixed incorrect overflow detection introduced in a5e502ef4d 2021-10-06 10:18:18 +03:00
Dmitry Stogov 084c9faf4d Merge branch 'PHP-8.1'
* PHP-8.1:
  Fixed assign coalesce. "$a[0] ??= $a" should evaluate the right $a first.
2021-10-05 20:34:57 +03:00
Dmitry Stogov 80205cd39a Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fixed assign coalesce. "$a[0] ??= $a" should evaluate the right $a first.
2021-10-05 20:34:43 +03:00
Dmitry Stogov 80aaeb9696 Fixed assign coalesce. "$a[0] ??= $a" should evaluate the right $a first. 2021-10-05 20:34:09 +03:00
Derick Rethans 8b55a84d00 Merge branch 'PHP-8.1' 2021-10-05 18:28:40 +01:00
Derick Rethans 6166ac51b7 Force UTC 2021-10-05 18:28:30 +01:00
Dmitry Stogov 69fb20f106 Fixed assign coalesce. "$a[0] ??= $a" should evaluate the right $a first. 2021-10-05 20:23:56 +03:00
Derick Rethans fef250ec85 Merge branch 'PHP-8.1' 2021-10-05 17:26:10 +01:00
Derick Rethans 5161bfb4b5 Merge branch 'PHP-8.0' into PHP-8.1 2021-10-05 17:26:05 +01:00
Derick Rethans 0eb7a1576d Merge branch 'PHP-7.4' into PHP-8.0 2021-10-05 17:25:57 +01:00
Derick Rethans e5d35a3252 Prepare branch for 7.4.26-dev 2021-10-05 17:25:43 +01:00
Matteo Beccati a476cc109d Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix #81509 pg_end_copy still expects a resource
  Add test for pg_put_line() and pg_end_copy()
2021-10-05 18:14:06 +02:00
Matteo Beccati 958daa6529 Fix #81509 pg_end_copy still expects a resource 2021-10-05 18:13:50 +02:00
Matteo Beccati 202a099aee Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Add test for pg_put_line() and pg_end_copy()
2021-10-05 18:13:20 +02:00
Matteo Beccati 9af6882d28 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Add test for pg_put_line() and pg_end_copy()
2021-10-05 17:44:19 +02:00
Matteo Beccati be36bf5aca Add test for pg_put_line() and pg_end_copy() 2021-10-05 17:43:48 +02:00
Nikita Popov f313854c98 Merge branch 'PHP-8.1'
* PHP-8.1:
  Require libavif version >= 0.8.2
2021-10-05 17:01:46 +02:00
Ben Morss b4c200f9fe Require libavif version >= 0.8.2
Closes GH-7554.
2021-10-05 17:01:07 +02:00
Nikita Popov b14076a845 Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix build without global registers
2021-10-05 16:46:10 +02:00
Nikita Popov dab6527352 Fix build without global registers 2021-10-05 16:45:44 +02:00
Nikita Popov fef61a8e11 Merge branch 'PHP-8.1'
* PHP-8.1:
  Reuse wrong string offset logic in jit
2021-10-05 16:33:39 +02:00
Nikita Popov a4fa00ead3 Reuse wrong string offset logic in jit
JIT contains a copy of this function that effectively only differs
by fetching current_execute_data from EG. We can do that in the VM
version as well, as this is just used to throw an error.

Export the VM function and reuse it in JIT.
2021-10-05 16:33:31 +02:00
Derick Rethans 0d6b8bbfcd Merge branch 'PHP-8.1' 2021-10-05 15:23:05 +01:00
Derick Rethans 68b874d10d Fixed bug #81504: Incorrect timezone transition details for POSIX data 2021-10-05 15:22:55 +01:00
Nikita Popov d032b85762 Merge branch 'PHP-8.1'
* PHP-8.1:
  Use ephemeral port in test
2021-10-05 16:01:00 +02:00
Nikita Popov e91a751e3d Use ephemeral port in test 2021-10-05 16:00:50 +02:00
Nikita Popov be323b89cd Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix duplicate undef warning in assign_dim_op
2021-10-05 15:51:35 +02:00
Nikita Popov 02c5f7f927 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix duplicate undef warning in assign_dim_op
2021-10-05 15:51:30 +02:00
Nikita Popov 11a9b036a8 Fix duplicate undef warning in assign_dim_op
In case of auto-vivification we were fetching dim twice and as
such also emitting the undef var warning twice.
2021-10-05 15:51:11 +02:00
Nikita Popov f8ae4624c4 Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix return type verification with undef var
2021-10-05 15:34:48 +02:00
Nikita Popov c5e96daa41 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix return type verification with undef var
2021-10-05 15:34:37 +02:00
Nikita Popov f890c9c5e3 Fix return type verification with undef var
This was loading EG(uninitialized_value) into r0 rather than
FCARG1a.

However, if we fix this issue an existing test fails because
the undef var warning promoted to exception is not caught early
enough, so we need to explicitly check for the exception before
performing the type check.
2021-10-05 15:30:55 +02:00