1
0
mirror of https://github.com/php/php-src.git synced 2026-04-23 07:58:20 +02:00
Commit Graph

62664 Commits

Author SHA1 Message Date
Andreas Braun f7d42f646b Update gen_stub to avoid compile errors on duplicate function names
Closes GH-9406
2022-08-30 11:33:45 +02:00
Calvin Buckley f3a14d1b1a Fix GH-9347: Current ODBC liveness checks may be inadequate
We implement SQL_ATTR_CONNECTION_DEAD for ODBC and PDO_ODBC.

This is semantically appropriate and should be used whenever the
driver supports it. In the event that it fails or says the connection
isn't dead (which may be inaccurate in some cases), try the old
heuristic.

Closes GH-9353.
2022-08-29 18:32:31 +02:00
Dmitry Stogov a55441615c Merge branch 'PHP-8.1'
* PHP-8.1:
  typo
2022-08-29 17:13:23 +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
Derick Rethans 932586c426 Fixed bug GH-9431: DateTime::getLastErrors() not returning false when no errors/warnings
For PHP 8.2 and later only.
2022-08-29 14:33:41 +01:00
Dmitry Stogov 218da70bcf Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix memory leak
2022-08-29 14:54:49 +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 4b884bedc8 JIT: Fix missing type store
Fixes oss-fuzz #50653
2022-08-29 14:36:16 +03:00
Christoph M. Becker 725cb4e8ad Revert "Fix GH-9296: ksort behaves incorrectly on arrays with mixed keys"
This reverts commit cd1aed8edd, as
discussed on internals (<https://externals.io/message/118483>).
2022-08-29 12:41:36 +02:00
Dmitry Stogov 2f9bc6e37a Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix ext/opcache/tests/jit/inc_obj_004.phpt failure introduced by fd74ee7e90
2022-08-29 12:36:06 +03:00
Dmitry Stogov a516e2992d Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix ext/opcache/tests/jit/inc_obj_004.phpt failure introduced by fd74ee7e90
2022-08-29 12:35:46 +03:00
Dmitry Stogov ce42dcf483 Fix ext/opcache/tests/jit/inc_obj_004.phpt failure introduced by fd74ee7e90
This should fix GH-9445
2022-08-29 12:30:14 +03:00
Christoph M. Becker ca011bbf56 Drop unsupported libxml2 2.10.0 symbols
The Docbook parser module has been removed completely.  Support for
XPointer locations (ranges and points) is disabled by default, and will
eventually be removed completely.  Given that the maintainer comments
on the latter: "Be warned that this part of the code base is buggy and
had many security issues in the past", it seems to be prudent to no
longer build with XPointer locations support right away.

To be able to build against libxml2 2.10.0, we remove the export
definitions for Windows.

Closes GH-9358.
2022-08-28 13:56:34 +02:00
Tim Starling 11796229f2 Add libxml_get_external_entity_loader()
Add libxml_get_external_entity_loader(), which returns the currently
installed external entity loader, i.e. the value which was passed to
libxml_set_external_entity_loader() or null if no loader was installed
and the default entity loader will be used.

This allows libraries to save and restore the loader, controlling entity
expansion without interfering with the rest of the application.

Add macro Z_PARAM_FUNC_OR_NULL_WITH_ZVAL(). This allows us to get the
zval for a callable parameter without duplicating callable argument
parsing.

The saved zval keeps the object needed for fcc/fci alive, simplifying
memory management.

Fixes #76763.
2022-08-28 12:47:20 +01:00
Jakub Zelenka 35e2a25d83 Add openssl_cipher_key_length function
This function works in exactly the same way as openssl_cipher_iv_length
but for a key length. This is especially useful to make sure that the
right key length is provided to openssl_encrypt and openssl_decrypt.

In addtion the change also updates implementation of
openssl_cipher_iv_length and adds a test for it.
2022-08-28 12:27:16 +01:00
Jakub Zelenka 1407968891 Implement FR #76935: OpenSSL chacha20-poly1305 AEAD support
This adds support for ChaCha20-Poly1305 AEAD algorithm so it is possible
to use it in the same way as AES GCM and other AEAD algorithms. This is
available in OpenSSL 1.1.0+.
2022-08-28 12:15:58 +01:00
Jakub Zelenka 505e8d2a04 Fix GH-9310: SSL local_cert and local_pk do not respect open_basedir restriction 2022-08-28 12:11:14 +01:00
Máté Kocsis b4ec3e9bc0 Do not generate CONST_CS when registering constants (#9439) 2022-08-28 08:27:19 +02:00
Christoph M. Becker 291c8bd8fc Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix pdo_dblib ext test conflicts when run in parallel
2022-08-26 14:59:59 +02:00
Christoph M. Becker 2bd58dbcc4 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix pdo_dblib ext test conflicts when run in parallel
2022-08-26 14:59:08 +02:00
Michael Voříšek f86629569c Fix pdo_dblib ext test conflicts when run in parallel
Closes GH-9430.
2022-08-26 14:57:13 +02:00
Máté Kocsis ef72d53397 Declare ext/standard constants in stubs - part 3 (#9427) 2022-08-26 14:47:34 +02:00
Máté Kocsis c573b8228a Declare ext/standard constants in stubs - part 2 (#9426) 2022-08-26 14:40:48 +02:00
Ilija Tovilo 3264f2367d Fix strict-prototypes warning 2022-08-26 13:57:39 +02:00
Dmitry Stogov 7f74a30018 Reduce observer overhead when restoring script from opcache (#9413)
* Reduce observer overhead when restoring script from opcache

* typo

* Split loops to keep notifications in case of redeclaration errors
2022-08-25 19:49:16 +03:00
Christoph M. Becker b485a3ec0b Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix oci8/pdo_oci random test failures when run in parallel
2022-08-25 15:22:52 +02:00
Christoph M. Becker 502c630d01 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix oci8/pdo_oci random test failures when run in parallel
2022-08-25 15:21:52 +02:00
Michael Voříšek be4dd60c55 Fix oci8/pdo_oci random test failures when run in parallel
Closes GH-9424.
2022-08-25 15:20:50 +02:00
Christoph M. Becker 145525bc4c Merge branch 'PHP-8.1'
* PHP-8.1:
  xmlRelaxNGCleanupTypes() is deprecated as of libxml2 2.10.0
2022-08-25 15:12:40 +02:00
Christoph M. Becker afc5ab4531 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  xmlRelaxNGCleanupTypes() is deprecated as of libxml2 2.10.0
2022-08-25 15:11:41 +02:00
Christoph M. Becker f59754694e xmlRelaxNGCleanupTypes() is deprecated as of libxml2 2.10.0
The documentation[1] suggest to call `xmlCleanupParser()` instead, but
we are not doing that for reasons[2].  Thus, we do no longer call
`xmlRelaxNGCleanupTypes()` for libxml2 ≥ 2.10.0.

[1] <https://gnome.pages.gitlab.gnome.org/libxml2/devhelp/libxml2-relaxng.html#xmlRelaxNGCleanupTypes>
[2] <https://github.com/php/php-src/commit/8742276eb3905eb97a585417000c7b8df85006d4>

Closes GH-9417.
2022-08-25 15:10:30 +02:00
Tim Düsterhus cbb024cb3d Select rand_rangeXX() variant only based on the requested range (#9418)
This fixes an incompatibility when wrapping native 32-bit engines with a userland
engine. The latter always used the 64-bit range function which then used two
32-bit numbers from the underlying engine to fill the 64-bit range, whereas the
native implementation used only one.

Now the selection of the range variant only depends on the requested range. A
32-bit range uses the 32-bit variant (even for 64-bit engines), whereas a
larger range uses the 64-bit variant.

This was found in https://github.com/php/php-src/pull/9410#discussion_r953213000
2022-08-25 09:42:32 +02:00
Máté Kocsis de90edc42c Declare ext/oci8 constants in stubs (#9419)
Co-authored-by: Christoph M. Becker <cmbecker69@gmx.de>
2022-08-24 21:10:20 +02:00
David CARLIER e787d9a0dc GH-9370: Fix opcache jit protection bits.
Allow mprotect to occur, pthread_jit_write_np are just to allow mprotect
 flags to be used.

Closes #9371.
2022-08-24 16:11:35 +01:00
Máté Kocsis bc4c012611 Declare ext/standard constants in stubs - part 1 (#9404) 2022-08-24 16:09:48 +02:00
Máté Kocsis 10a27bc47b Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix pdo_oci tests for PHP 8.1
2022-08-24 14:40:01 +02:00
Michael Voříšek 2db2cab6ad Fix pdo_oci tests for PHP 8.1
Closes GH-9051
2022-08-24 14:39:45 +02:00
Tim Düsterhus 0f696e2934 Fix rand_range32() for umax = UINT32_MAX (#9416)
* Fix rand_range32() for umax = UINT32_MAX

This was introduced in the commit that added the random extension:
4d8dd8d258.

Resolves GH-9415

* [ci skip] Rename `$r` to `$randomizer` in gh9415.phpt

* Make gh9415.phpt deterministic

* Make gh9415.phpt compatible with 32-bit
2022-08-24 14:25:51 +02:00
Christoph M. Becker b78c087b32 Fix typo (Paletter → Palette)
This also aligns the error message with upstream[1].

[1] <https://github.com/libgd/libgd/blob/gd-2.3.3/src/gd_webp.c#L182>

Closes GH-9414.
2022-08-24 13:40:16 +02:00
Dmitry Stogov 205ad0af29 Fix coding style 2022-08-24 08:44:49 +03:00
wxue1 9f926d6b2d Stop JIT hot spot counting (#9343)
When max_root_trace is reached, JIT in tracing mode will not
compile any new code for root trace and side trace, but
counting hot code is still going on. This patch stops counting
as soon as possible by replacing counter handler with
original handler, which increases 1.5% performance.

Signed-off-by: Wang, Xue <xue1.wang@intel.com>

Signed-off-by: Wang, Xue <xue1.wang@intel.com>
2022-08-24 08:37:49 +03:00
Tim Düsterhus 2d6a883b3a Unify structure for ext/random's engine tests (#9321)
* Remove user_xoshiro128plusplus.phpt

This test does not exercise any of the code paths of the random extension and
thus is no value-add.

* Unify structure for ext/random's engine tests
2022-08-23 23:55:11 +02:00
Bob Weinand 396b2aab85 Wrap observer notify functions into inlined enabled checks
Signed-off-by: Bob Weinand <bobwei9@hotmail.com>
2022-08-23 15:22:22 +02:00
Bob Weinand bf427b732a Add an API to observe functions and classes being linked
To observe when the functions and classes start being officially available to the user

Signed-off-by: Bob Weinand <bobwei9@hotmail.com>
2022-08-23 15:22:22 +02:00
Dmitry Stogov 567213c32a Drop range inference for IS_NULL/IS_FALSE/IS_TRUE.
These values not always converted to IS_LONG (e.g. by -- and ++) and
this leads to incorrect range inferene and later to incorrect JIT code
generation.
2022-08-23 11:22:31 +03:00
Dmitry Stogov e10d2c2bf9 Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix type inference
2022-08-22 21:12:49 +03:00
Dmitry Stogov 95befc786a Fix type inference
Fixes oss-fuzz #50272
2022-08-22 21:11:39 +03:00
Dmitry Stogov d8c6549974 Merge branch 'PHP-8.1'
* PHP-8.1:
  JIT: Make code generation to be consistent with register allocation
2022-08-22 20:00:44 +03:00