1
0
mirror of https://github.com/php/php-src.git synced 2026-04-25 08:58:28 +02:00
Commit Graph

62978 Commits

Author SHA1 Message Date
Christoph M. Becker e4e6c3e960 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix potential heap corruption due to alignment mismatch
2022-10-13 11:48:26 +02:00
Christoph M. Becker 3193c037d2 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix potential heap corruption due to alignment mismatch
2022-10-13 11:48:07 +02:00
Christoph M. Becker 7e14d2466a Fix potential heap corruption due to alignment mismatch
The fix for bug 63327[1] changed the extra size of mysqlnd allocations
from `sizeof(size_t)` to the properly aligned values; however, the
allocation in `_mysqlnd_pestrdup()` has apparently been overlooked,
which (currently) causes detectable heap corruption when running
mysqli_get_client_stats.phpt on 32bit Windows versions.

[1] <https://github.com/php/php-src/commit/338a47bb856872f9ab0db94e867333d73279ca85>

Closes GH-9724.
2022-10-13 11:47:24 +02:00
Christoph M. Becker 3b5a9da2dc Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Updated to version 2022.5 (2022e)
  Updated to version 2022.5 (2022e)
2022-10-13 11:43:33 +02:00
Máté Kocsis f6ef5fbb0a Declare ext/standard constants in stubs - part 12 (#9729) 2022-10-12 13:04:14 +02:00
Máté Kocsis c59e94fc9d Declare ext/stanard constants in stubs - part 11 (#9728) 2022-10-12 12:07:03 +02:00
Máté Kocsis fc11a8abcb Declare XML_SAX_IMPL constant in stubs (#9732) 2022-10-12 11:42:24 +02:00
Derick Rethans fd3d3117b5 Updated to version 2022.5 (2022e) 2022-10-12 09:37:31 +01:00
Derick Rethans 577b904fdc Updated to version 2022.5 (2022e) 2022-10-12 09:37:30 +01:00
Máté Kocsis 433ed0973a Declare ext/standard constants in stubs - part 10 (#9719) 2022-10-12 08:16:19 +02:00
Dmitry Stogov 5b65594d78 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix crashes after opcache restart
  [ci skip] Update NEWS for PHP 8.2.0RC5
2022-10-11 14:25:36 +03:00
Dmitry Stogov 46fcf33c7b Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix crashes after opcache restart
2022-10-11 14:23:59 +03:00
Dmitry Stogov c5364b851a Fix crashes after opcache restart 2022-10-11 14:23:12 +03:00
Bob Weinand fabfe1e334 Merge branch 'PHP-8.2' 2022-10-11 01:06:09 +02:00
Bob Weinand 9be00e3935 Ensure driver specific PDO methods have a proper run_time_cache 2022-10-11 00:53:19 +02:00
Alex Dowad ec999f815c Merge branch 'PHP-8.2'
* PHP-8.2:
  Add regression test for problem with mb_encode_mimeheader reported as GH-9683
  In legacy text conversion filters, reset filter state in 'flush' function
2022-10-10 20:49:16 +09:00
Alex Dowad a116aaebd9 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Add regression test for problem with mb_encode_mimeheader reported as GH-9683
  In legacy text conversion filters, reset filter state in 'flush' function
2022-10-10 20:48:10 +09:00
Alex Dowad faa5425b0f Add regression test for problem with mb_encode_mimeheader reported as GH-9683 2022-10-10 20:46:12 +09:00
Alex Dowad 5812b4fe54 In legacy text conversion filters, reset filter state in 'flush' function
Up until now, I believed that mbstring had been designed such
that (legacy) text conversion filter objects should not be
re-used after the 'flush' function is called to complete a
text conversion operation.

However, it turns out that the implementation of
_php_mb_encoding_handler_ex DID re-use filter objects
after flush. That means that functions which were based on
_php_mb_encoding_handler_ex, including mb_parse_str and
php_mb_post_handler, would break in some cases; state left
over from converting one substring (perhaps a variable name)
would affect the results of converting another substring
(perhaps the value of the same variable), and could cause
extraneous characters to get inserted into the output.

All this code should be deleted soon, but fixing it helps me
to avoid spurious failures when fuzzing the new/old code to
look for differences in behavior.

(This bug fix commit was originally applied to PHP-8.2 when fuzzing
the new mbstring text conversion code to check for differences with
the old code. Later, Kentaro Ohkouchi kindly reported a problem with
mb_encode_mimeheader under PHP 8.1 which was caused by the same issue.
Hence, this commit was backported to PHP-8.1.)

Fixes GH-9683.
2022-10-10 20:46:12 +09:00
Christoph M. Becker 2979743ac2 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix GH-9589: dl() segfaults when module is already loaded
  Fix GH-9566: disable assembly for Fiber on FreeBSD i386.
2022-10-10 13:37:30 +02:00
Christoph M. Becker 6e0505bf27 Fix GH-9589: dl() segfaults when module is already loaded
As of PHP 8.2.0, `zend_module_entry` structures are no longer copied,
so when a module is permanently loaded, and users try to dynamically
load that module again, the structure is corrupted[1], causing a
segfault on shutdown.

We catch that by checking whether any dynamically loaded module is
already loaded, and bailing out in that case without modifying the
`zend_module_entry` structure.

[1] <https://github.com/php/php-src/issues/9589#issuecomment-1263718701>

Closes GH-9689.
2022-10-10 13:36:57 +02:00
Dmitry Stogov 4650a8c710 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix GH-9697: array_walk($ffiInstance, function () {}) crashes due to expecting mutable array
2022-10-10 11:25:42 +03:00
Dmitry Stogov 626e909877 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix GH-9697: array_walk($ffiInstance, function () {}) crashes due to expecting mutable array
2022-10-10 11:25:33 +03:00
Dmitry Stogov fa2c519544 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix GH-9697: array_walk($ffiInstance, function () {}) crashes due to expecting mutable array
2022-10-10 11:25:23 +03:00
Dmitry Stogov d9651a9419 Fix GH-9697: array_walk($ffiInstance, function () {}) crashes due to expecting mutable array 2022-10-10 11:21:05 +03:00
Ilija Tovilo e186765a4d Throw in ReflectionMethod::__construct() when initialized with private parent method
Fixes GH-9470
Closes GH-9640
2022-10-10 00:49:10 +02:00
Ilija Tovilo 08e886235a Fix json_validate double free in parser when discarding lookahead (#9696) 2022-10-09 22:03:06 +02:00
Ilija Tovilo 3e9fcb5a9e Merge branch 'PHP-8.2'
* PHP-8.2:
  Prepare for Windows CI with Github Actions
2022-10-09 18:48:17 +02:00
Ilija Tovilo 182c8acf43 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Prepare for Windows CI with Github Actions
2022-10-09 18:48:07 +02:00
Ilija Tovilo 296a09549b Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Prepare for Windows CI with Github Actions
2022-10-09 18:45:29 +02:00
Michael Voříšek b43e49437c Prepare for Windows CI with Github Actions 2022-10-09 18:44:59 +02:00
Juan Morales 2e8699f6f2 RFC - json_validate() (#9399)
* Add `json_validate(string $json, int $depth = 512, int $flags = 0): bool` from https://wiki.php.net/rfc/json_validate
* In json_validate, use a different set of C no-op functions for creating/updating
   arrays/objects when validating while reusing the unmodified parser/scanner code
* Forbid unsupported flags in json_validate()
* Remove test of passing NULL as parameter (normal behavior of https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_arg for internal functions)

Co-authored-by: jcm <juan.carlos.morales@tradebyte.com>
2022-10-08 09:21:59 -04:00
Arnaud Le Blanc 2864282725 Improve warning message 2022-10-07 15:48:05 +02:00
Arnaud Le Blanc 722ed598d5 Do not require opcache.preload_user in cli SAPIs 2022-10-07 15:48:05 +02:00
Arnaud Le Blanc 73dabdfebe Refactor accel_finish_startup 2022-10-07 15:48:05 +02:00
George Peter Banyard 0c6e1e1c3b Merge branch 'PHP-8.2'
* PHP-8.2:
  Actually fix GH-9583
2022-10-06 14:31:59 +01:00
George Peter Banyard 7d5ce1c483 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Actually fix GH-9583
2022-10-06 14:31:29 +01:00
George Peter Banyard 09a57d385d Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Actually fix GH-9583
2022-10-06 14:29:53 +01:00
George Peter Banyard 499fbcd679 Actually fix GH-9583
The issue is that PS(mod)->s_validate_sid is always defined for user modules, thus we need to check that the actual callable is set
Add another regression test to ensure current working behaviour is not broken (which was by the previous incorrect fix)

Closes GH-9638
2022-10-06 14:29:13 +01:00
Tim Düsterhus 32d101b1fc Merge branch 'PHP-8.2'
* PHP-8.2:
  Reduce scope of `r` in rand_rangeXX (#9678)
2022-10-06 12:56:02 +02:00
Tim Düsterhus 59a19d710b Reduce scope of r in rand_rangeXX (#9678)
This variable is only accessed within a single iteration of the expansion loop.
2022-10-06 12:55:51 +02:00
Christoph M. Becker a3bfffc1b0 Merge branch 'PHP-8.2'
* PHP-8.2:
  Remove support for libmysql-client from mysqli test suite
2022-10-06 12:09:45 +02:00
Christoph M. Becker 62d393b1ed Remove support for libmysql-client from mysqli test suite
Since mysqli can no longer be built against libmysql-client, there is
no longer the need to distinguish.

While we're at it, we also drop the superfluous is_object() checks.

Closes GH-9652.
2022-10-06 12:09:14 +02:00
Dmitry Stogov 65cfe87e8d Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix typo
2022-10-05 21:39:54 +03:00
Dmitry Stogov 5cfec7ee40 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix typo
2022-10-05 21:39:46 +03:00
Dmitry Stogov e81b6bf018 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix typo
2022-10-05 21:39:37 +03:00
Dmitry Stogov 072dc3c857 Fix typo 2022-10-05 21:39:16 +03:00
Alex Dowad c417990577 Merge branch 'PHP-8.2'
* PHP-8.2:
  Restore backwards-compatible mappings of U+005C and U+007E to SJIS-2004
2022-10-05 12:28:41 +09:00
Alex Dowad 9beb93f2cf Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Restore backwards-compatible mappings of U+005C and U+007E to SJIS-2004
2022-10-05 12:27:32 +09:00
Alex Dowad dd00e2f1e3 Restore backwards-compatible mappings of U+005C and U+007E to SJIS-2004
In 0d0029d729 and 315d48b434, I changed the mappings used for Unicode
to Shift-JIS-2004, in an attempt to follow the JISC specification
more closely. However, feedback from Japanese PHP users indicates
that most users of SJIS-2004 expect 0x5C and 0x7E to be treated as
equivalent to the same ASCII bytes. This is due to a long history of
non-complying implementations which then became a de-facto standard.

Therefore, restore the earlier mappings for U+005C and U+007E.

Thanks to the GitHub user 'youkidearitai' for reporting this issue.

Fixes GH-9528.
2022-10-05 12:18:38 +09:00