1
0
mirror of https://github.com/php/php-src.git synced 2026-04-10 09:33:06 +02:00
Commit Graph

62854 Commits

Author SHA1 Message Date
Bob Weinand
9be00e3935 Ensure driver specific PDO methods have a proper run_time_cache 2022-10-11 00:53:19 +02: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
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
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
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
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
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
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
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
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
Tim Düsterhus
1e9280e035 [ci skip] Trim trailing whitespace in php_random.h 2022-10-03 20:32:37 +02:00
Dmitry Stogov
4164d2d567 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix register allocation (missing store)
2022-10-03 17:09:07 +03:00
Dmitry Stogov
5877b84056 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix register allocation (missing store)
2022-10-03 17:09:01 +03:00
Dmitry Stogov
ed652a514f Fix register allocation (missing store)
This fixes oss-fuzz #52022
2022-10-03 17:08:11 +03:00
Dmitry Stogov
ec5882e1c3 Fix GH-9626: JIT type assertion failure in Symfony community build 2022-10-03 14:58:37 +03:00
Dmitry Stogov
3cce4964d1 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix abstract trace consisency for FE_FETCH instruction
2022-10-03 14:51:32 +03:00
Dmitry Stogov
da28a6b497 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix abstract trace consisency for FE_FETCH instruction
2022-10-03 14:51:21 +03:00
Dmitry Stogov
5ca4113386 Fix abstract trace consisency for FE_FETCH instruction 2022-10-03 14:48:03 +03:00
Christoph M. Becker
a5003bb4f4 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  gh9590.phpt requires ext/posix
2022-10-01 14:34:59 +02:00
Christoph M. Becker
48ae3a0e3f gh9590.phpt requires ext/posix 2022-10-01 14:34:24 +02:00
Christoph M. Becker
c5f53c4ef4 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Use --EXTENSIONS-- section for newly added tests
2022-10-01 14:09:26 +02:00
Christoph M. Becker
47c79a97f5 Use --EXTENSIONS-- section for newly added tests
As of PHP 8.1.0, the `--EXTENSIONS-- section is properly supported, and
CIs may make use of that (our AppVeyor CI does).  Thus it is important
to list required extensions there, since otherwise they may not be
loaded, causing the test to be skipped, or worse, to be borked.
2022-10-01 14:08:59 +02:00
Arnaud Le Blanc
246d13cd99 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [ci skip] NEWS
  [ci skip] NEWS
  Return immediately when FD_SETSIZE is exceeded (#9602)
2022-10-01 11:24:23 +02:00
Arnaud Le Blanc
d4b99542d5 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  [ci skip] NEWS
  Return immediately when FD_SETSIZE is exceeded (#9602)
2022-10-01 11:23:34 +02:00
Arnaud Le Blanc
80232de0e4 Return immediately when FD_SETSIZE is exceeded (#9602) 2022-10-01 11:20:43 +02:00
Jakub Zelenka
d2b7d67dac Merge branch 'PHP-8.1' into PHP-8.2 2022-09-30 17:08:55 +01:00
Jakub Zelenka
ee8f2c75e0 Merge branch 'PHP-8.0' into PHP-8.1 2022-09-30 17:08:17 +01:00
Andy Postnikov
c58241a003 Make socket path shorter for ext/sockets/tests/socket_cmsg_{rights|credentials}.phpt
When running in CI it fails when path/address is longer 108
2022-09-30 17:07:40 +01:00
David Carlier
ed1d41465a Merge branch 'PHP-8.1' into PHP-8.2 2022-09-29 20:40:45 +01:00
David Carlier
2440d29efd Merge branch 'PHP-8.0' into PHP-8.1 2022-09-29 20:40:33 +01:00
David Carlier
257f108924 fix php_init_crypt_r/php_shutdown_crypt_r signatures warning. 2022-09-29 20:40:16 +01:00
Dmitry Stogov
efcffc9d5f Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Force exit to VM
2022-09-29 15:28:23 +03:00
Dmitry Stogov
aa179bf3dd Force exit to VM 2022-09-29 15:27:38 +03:00
Dmitry Stogov
57a01e3a4a Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Keep original EG(jit_trace_num) value around __autoload()
2022-09-29 15:01:39 +03:00
Dmitry Stogov
f7d0a3e0e0 Keep original EG(jit_trace_num) value around __autoload() 2022-09-29 15:00:52 +03:00
Ilija Tovilo
a5fdfc4fc0 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci ] Rename matrix-include output on old branches
  Updated to version 2022.4 (2022d)
  Updated to version 2022.4 (2022d)
2022-09-29 13:08:45 +02:00
Derick Rethans
0360e62cae Updated to version 2022.4 (2022d) 2022-09-29 11:52:08 +01:00
Derick Rethans
d16b5d3803 Updated to version 2022.4 (2022d) 2022-09-29 11:52:06 +01:00
Christoph M. Becker
3d2d7d1000 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Revert unintended test expectation change
2022-09-28 12:14:39 +02:00