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

127458 Commits

Author SHA1 Message Date
Christoph M. Becker a72a011054 Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix zend_observer_fcall_end_all() accessing dangling pointers
2021-12-27 18:21:37 +01:00
Christoph M. Becker d4c07df4df Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix zend_observer_fcall_end_all() accessing dangling pointers
2021-12-27 18:20:48 +01:00
Florian Sowade 76e2a8380e Fix zend_observer_fcall_end_all() accessing dangling pointers
This may happen, when the execute_data was allocated on the stack.  We
ensure that the runtime cache pointer is not NULL before dereferencing
it.

This is a partial fix for bug 81430.

Closes GH-7665.
2021-12-27 18:19:13 +01:00
Christoph M. Becker 71b55d7dd8 [ci skip] supportedOs Id for Windows 10 and 11 are the same
Cf. <https://docs.microsoft.com/en-us/windows/win32/sysinfo/targeting-your-application-at-windows-8-1>.
2021-12-27 15:18:47 +01:00
Christoph M. Becker 383bdbce64 Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix GH-7815: php_uname doesn't recognise latest Windows versions
2021-12-27 15:09:02 +01:00
David Warner f82593d597 Fix GH-7815: php_uname doesn't recognise latest Windows versions
We check `dwBuildNumber` to determine newer Windows versions.

Closes GH-7816.
2021-12-27 15:08:11 +01:00
Dmitry Stogov a066b809de Skip abstract methods 2021-12-27 15:28:46 +03:00
Dmitry Stogov 2759e6bc69 Fixed assertion when check "instanceof" on unlinked class 2021-12-27 12:02:13 +03:00
Christoph M. Becker 124ac49325 [ci skip] Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix bug40228*.phpt conflict
2021-12-26 23:28:59 +01:00
Christoph M. Becker 187e011710 [ci skip] Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix bug40228*.phpt conflict
2021-12-26 23:28:29 +01:00
Christoph M. Becker 7f0a1e2f2d Fix bug40228*.phpt conflict
Both tests use the same directory structure; we avoid that by
extracting to separate subdirectories.

Closes GH-7831.
2021-12-26 23:23:56 +01:00
Christoph M. Becker 5a3b0da19d Merge branch 'PHP-8.1'
* PHP-8.1:
  Mark curl tests using http2.golang.org as XFAIL
2021-12-26 22:30:16 +01:00
Christoph M. Becker 710dc03399 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Mark curl tests using http2.golang.org as XFAIL
2021-12-26 22:29:17 +01:00
Christoph M. Becker 5005445994 Mark curl tests using http2.golang.org as XFAIL
http2.golang.org/serverpush has been retired[1], so we need to come up
with an alternative.  Until then, we mark the relevant tests as XFAIL
(although bug77535.phpt passes, what might be an indication that the
test needs further revision).  To avoid waiting for the timeout, we
also unconditionally skip these tests for now.

[1] <https://github.com/golang/go/issues/49301>

Closes GH-7829.
2021-12-26 22:27:15 +01:00
Alex Dowad 53ffba967c Implement fast text conversion interface for CP5022{0,1,2} 2021-12-26 22:19:51 +02:00
Alex Dowad 01afd9f141 Implement fast text conversion interface for JIS 2021-12-26 22:19:51 +02:00
Alex Dowad cb4626c5b2 Implement fast text conversion interface for GB18030 2021-12-26 22:19:51 +02:00
Alex Dowad 3e8088dc80 Implement fast text conversion interface for EUC-JP-MS 2021-12-26 22:19:51 +02:00
Alex Dowad e5af94b74f Implement fast text conversion interface for CP51932 2021-12-26 22:19:51 +02:00
Alex Dowad 6ef1b35223 Implement fast text conversion interface for EUC-CN 2021-12-26 22:19:51 +02:00
Alex Dowad 9bd08a97d9 Implement fast text conversion interface for EUC-TW 2021-12-26 22:19:51 +02:00
Alex Dowad 661a10160b Implement fast text conversion interface for CP936 2021-12-26 22:19:51 +02:00
Alex Dowad 20555371d5 Implement fast text conversion interface for CP932 2021-12-26 22:19:51 +02:00
Alex Dowad 43bb97c539 Implement fast text conversion interface for EUC-KR 2021-12-26 22:19:51 +02:00
Alex Dowad c0936d48b0 Implement fast text conversion interface for UHC 2021-12-26 22:19:51 +02:00
Alex Dowad 40809cb19f Implement fast text conversion interface for HZ 2021-12-26 22:19:51 +02:00
Alex Dowad da58d42d94 Implement fast text conversion interface for CP950 2021-12-26 22:19:51 +02:00
Alex Dowad eac50a360f Implement fast text conversion interface for Big5 2021-12-26 22:19:51 +02:00
Christoph M. Becker 057737c92f Merge branch 'PHP-8.1'
* PHP-8.1:
  Prevent strict interpretation of tentative definition
2021-12-26 16:43:34 +01:00
Christoph M. Becker 0cd1741004 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Prevent strict interpretation of tentative definition
2021-12-26 16:42:33 +01:00
Christoph M. Becker e76ddbd2f6 Prevent strict interpretation of tentative definition
This header declaration is never supposed to be interpreted as
definition; otherwise, the handlers are not properly initialized, what
happens, for instance, with ASan instrumented MSVC builds.

Closes GH-7827.
2021-12-26 16:41:25 +01:00
Nikita Popov e45653c089 Make sure SCCP can evaluate all functions pass1 can
Move evaluation of ini_get() into eval_special_func_call() and
use this helper both in pass1 and sccp.
2021-12-26 15:40:35 +01:00
Nikita Popov 1050edaef8 Extract special function evaluation from pass1
Pass1 handles a number of special functions that can be evaluated
under some circumstances. Move the core logic into a separate
helper, as I believe that SCCP should reuse this.
2021-12-26 15:40:35 +01:00
Christoph M. Becker 77b54248c8 Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix GH-7826: Inconsistent argument name in hash_hmac_file and hash_file
2021-12-26 12:59:38 +01:00
Christoph M. Becker a6ddd1a14d Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix GH-7826: Inconsistent argument name in hash_hmac_file and hash_file
2021-12-26 12:59:06 +01:00
Christoph M. Becker fd3fc5c193 Fix GH-7826: Inconsistent argument name in hash_hmac_file and hash_file
Like `hash_file()`, `hash_hmac_file()` expects a filename, and not some
string data.  Fixing this now, constitutes a (hopefully small) BC break
though.

Closes GH-7828.
2021-12-26 12:55:53 +01:00
Christoph M. Becker c5c66bd8ec Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix chunk_split_variation*_32bit.phpt for Windows
2021-12-26 12:07:44 +01:00
Christoph M. Becker 9e4437f8c6 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix chunk_split_variation*_32bit.phpt for Windows
2021-12-26 12:07:07 +01:00
Christoph M. Becker b4ba65dd9d Fix chunk_split_variation*_32bit.phpt for Windows
Both tests fail on Windows for slightly different reasons, what appears
to be legit, and as such we fix the test expectations.

Closes GH-7830.
2021-12-26 12:05:52 +01:00
Nikita Popov c4334fc616 Remove special chr/count handling in sccp function evaluation
These can be handled by the generic code. Worth noting that count
will usually go through ZEND_COUNT, and chr on constants is
evaluated in the compiler, so these are not particularly compile-time
sensitive either.
2021-12-26 09:55:18 +01:00
Nikita Popov 924e875651 Minor code cleanup in pass1
Move literal destruction into helper and use a common result
variable to make code more compact.
2021-12-26 09:48:06 +01:00
Nikita Popov 206d80e11a Reuse get_class_entry_from_op1() helper
Export and reuse this helper in places that fetch a class entry
from op1.
2021-12-25 22:18:50 +01:00
Nikita Popov 2cf93032ee Sink op_array scope case into get_class_entry()
This handles references to the current class through its name
rather than self (and for cases where is is not linked yet and
thus not covered by the context lookup). Rather than handling this
only for FETCH_CLASS_CONSTANT optimization, integrate this into
the generic get_class_entry() utility.
2021-12-25 21:51:29 +01:00
Nikita Popov 046096f265 Remove outdated FETCH_CLASS handling in FETCH_CLASS_CONSTANT optimization
Nowadays self::X is represented using an UNUSED operand with
FETCH_CLASS_SELF flag rather than a separate FETCH_CLASS instruction.
The code already handles the new pattern.
2021-12-25 21:00:07 +01:00
Nikita Popov f6dce4a8ca Extract common replacement login in pass1
The replace const or replace with QM_ASSIGN pattern is common to
all constant folding, extract it into a function.
2021-12-25 20:56:25 +01:00
Anatol Belski 28287572a1 hash: Upgrade xxHash to 0.8.1
Signed-off-by: Anatol Belski <ab@php.net>
2021-12-25 19:00:09 +01:00
Nikita Popov 52676f2b7e Remove unnecessary wrapper function
This seems to date back to a time where zval_ptr_dtor was a macro
implicitly passing additional parameters.
2021-12-25 17:39:05 +01:00
Nikita Popov 0884048401 Don't exclude arrays from constant collection
These are supported as constants nowadays, so we can drop the
string check.

Also fix a potential leak, though I believe this doesn't matter in
current usage, as it will effectively be suppressed during persist.
2021-12-25 17:32:18 +01:00
Nikita Popov 7eae7e5e54 Remove FETCH_CLASS+INSTANCEOF special case
Instead propagate the FETCH_CLASS return value, so it can be
directly replaced if possible, which will also eliminate the
FETCH_CLASS subsequently.
2021-12-25 16:45:38 +01:00
Nikita Popov 92e7cf5962 Move FETCH_CLASS+INSTANCEOF special case out of update_op1_const()
The generic code was rejecting this to go into a special code path
in SCCP. We should directly do that in SCCP instead, to still allow
the generic (and valid) replacement.
2021-12-25 16:32:02 +01:00