1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00
Commit Graph

139583 Commits

Author SHA1 Message Date
Niels Dossche
b63db81086 Merge branch 'PHP-8.4'
* PHP-8.4:
  ext/dba/tests/gh16390.phpt: skip if inifile is disabled
2024-12-06 19:02:22 +01:00
Niels Dossche
f473e86978 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  ext/dba/tests/gh16390.phpt: skip if inifile is disabled
2024-12-06 19:02:17 +01:00
Michael Orlitzky
def271aaa7 ext/dba/tests/gh16390.phpt: skip if inifile is disabled
This test reads an ini "file" from a string, and expects a warning
about locking. But if inifile support is disabled, then you'll get

  Warning: dba_open(): Handler "inifile" is not available in
  /path/to/ext/dba/tests/gh16390.php on line 3

instead. We skip the test if inifile support is disabled.

Closes GH-17011.
2024-12-06 19:01:50 +01:00
Niels Dossche
559eb7ff26 Fix integer overflows in timelib
There are edge cases where computations can cause an integer overflow,
which is undefined behaviour. Lately, some fuzzers seem to be hitting
these quite frequently. While this behaviour is undefined, it doesn't
actually matter in practice, the worst effect is having a wrong
computation result, but no sane person would do computations on e.g. the
year pow(2,63).

Still, undefined behaviour is bad.
Make the wrapping behaviour defined by using -fwrapv when possible.
The scope of this is limited to timelib and doesn't affect php_date.c.

The reason for this is that this may in theory prevent some
optimizations and it also seems bad to affect code that lives so close
to the PHP-native edge.

I tested all issues.
This fixes all but one issues, the remaining issue is in php_date.c.

Fixes GH-13881.
Fixes GH-14075.
Fixes GH-15150.
Fixes GH-16034.
Fixes GH-16035.
Fixes GH-16048.
Fixes GH-16050.
Fixes GH-16051.
Fixes GH-16052.
Fixes GH-16775.
Fixes GH-16864.
Fixes GH-16865.
Fixes GH-16975.
Fixes GH-17025.
Fixes GH-17059.
Closes GH-17060.
2024-12-06 18:56:57 +01:00
Saki Takamachi
2bf3db0907 Merge branch 'PHP-8.4'
* PHP-8.4:
  Now `Number::round()` does not remove trailing zeros (#17063)
2024-12-07 02:00:22 +09:00
Saki Takamachi
b88dcc9f3e Now Number::round() does not remove trailing zeros (#17063)
Fixes #17061
Closes #17063
2024-12-07 02:00:04 +09:00
Saki Takamachi
bb13556240 Merge branch 'PHP-8.4'
* PHP-8.4:
  Correctly compare 0 and -0 (#17051)
2024-12-07 01:52:44 +09:00
Saki Takamachi
063c3c8522 Correctly compare 0 and -0 (#17051)
Fixes #17049
Closes #17051
2024-12-07 01:52:30 +09:00
Niels Dossche
e1e20892f9 Merge branch 'PHP-8.4'
* PHP-8.4:
  Fix GH-17047: UAF on iconv filter failure
2024-12-06 17:44:14 +01:00
Niels Dossche
c192a341ec Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-17047: UAF on iconv filter failure
2024-12-06 17:44:01 +01:00
Niels Dossche
ddbd396aa2 Fix GH-17047: UAF on iconv filter failure
The first while loop sets the bucket variable, and this is freed in
out_failure. However, when the second "goto out_failure" is triggered
then bucket still refers to the bucket from the first while loop,
causing a UAF.
Fix this by separating the error paths.

Closes GH-17058.
2024-12-06 17:43:38 +01:00
Niels Dossche
912b13a779 Test Firebird in 32-bit Linux CI (#17045)
Co-authored-by: =?UTF-8?q?=E6=AD=A6=E7=94=B0=20=E6=86=B2=E5=A4=AA=E9=83=8E?= <takeda@youmind.jp>
Co-authored-by: Christoph M. Becker <cmbecker69@gmx.de>
2024-12-06 17:27:59 +01:00
Dmitry Stogov
2b80b2e5ec Merge branch 'PHP-8.4'
* PHP-8.4:
  Backport fix for GH-9011 (#17052)
2024-12-05 18:32:41 +03:00
Dmitry Stogov
3e2cfdfb28 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Backport fix for GH-9011 (#17052)
2024-12-05 18:32:30 +03:00
Dmitry Stogov
6bac907cb1 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Backport fix for GH-9011 (#17052)
2024-12-05 18:32:18 +03:00
Dmitry Stogov
9d4f5f0762 Backport fix for GH-9011 (#17052)
* Backport fix for GH-9011

* Fix build
2024-12-05 18:32:02 +03:00
Christoph M. Becker
bef96f35fd Merge branch 'PHP-8.4'
* PHP-8.4:
  Revert "Enable GHSA-9pqp-7h25-4f32.phpt on Windows"
2024-12-04 20:47:48 +01:00
Christoph M. Becker
88acd91683 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Revert "Enable GHSA-9pqp-7h25-4f32.phpt on Windows"
2024-12-04 20:47:11 +01:00
Christoph M. Becker
e50cf7a7a0 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Revert "Enable GHSA-9pqp-7h25-4f32.phpt on Windows"
2024-12-04 20:45:39 +01:00
Christoph M. Becker
e532d9afb5 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Revert "Enable GHSA-9pqp-7h25-4f32.phpt on Windows"
2024-12-04 20:44:47 +01:00
Christoph M. Becker
2285d7083e Revert "Enable GHSA-9pqp-7h25-4f32.phpt on Windows"
This reverts commit 7685fb0e1c.

The test fails at least for PHP-8.2+ on CI. Needs closer investigation.
2024-12-04 20:43:49 +01:00
Niels Dossche
f108eecf7c Merge branch 'PHP-8.4'
* PHP-8.4:
  Fix GH-17037: UAF in user filter when adding existing filter name due to incorrect error handling
2024-12-04 20:05:38 +01:00
Niels Dossche
d6d78545ea Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-17037: UAF in user filter when adding existing filter name due to incorrect error handling
2024-12-04 20:05:32 +01:00
Niels Dossche
00f4881e90 Fix GH-17037: UAF in user filter when adding existing filter name due to incorrect error handling
There are two functions that can each fail in their own way. If the last
function fails we have to remove the filter entry from the hash table,
otherwise we risk a UAF. Note also that removing the entry from the
table on failure will also free its memory.

Closes GH-17038.
2024-12-04 20:04:53 +01:00
Christoph M. Becker
44e4f6d8f9 Merge branch 'PHP-8.4'
* PHP-8.4:
  Enable GHSA-9pqp-7h25-4f32.phpt on Windows
2024-12-04 19:06:20 +01:00
Christoph M. Becker
fbba6df626 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Enable GHSA-9pqp-7h25-4f32.phpt on Windows
2024-12-04 19:05:49 +01:00
Christoph M. Becker
9c40bdaaf5 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Enable GHSA-9pqp-7h25-4f32.phpt on Windows
2024-12-04 19:04:52 +01:00
Christoph M. Becker
c17b5bae8a Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Enable GHSA-9pqp-7h25-4f32.phpt on Windows
2024-12-04 19:04:22 +01:00
Christoph M. Becker
7685fb0e1c Enable GHSA-9pqp-7h25-4f32.phpt on Windows
Closes GH-16933.
2024-12-04 19:03:42 +01:00
Dmitry Stogov
7717df2c93 Merge branch 'PHP-8.4'
* PHP-8.4:
  Fix GH-9011: Assertion failure with tracing JIT (#17042)
2024-12-04 19:51:39 +03:00
Dmitry Stogov
5ab2c02ea1 Fix GH-9011: Assertion failure with tracing JIT (#17042)
* Fix GH-9011: Assertion failure with tracing JIT

* Temporay SKIP the test on 64-bit Windows because of GH-15709
2024-12-04 19:49:17 +03:00
Christoph M. Becker
00bd5e21f5 Exclude further dependencies from dist (GH-16965)
These are Windows/Visual Studio DLLs which are not supposed to be
distributed, and would usually not even be found in the configured
paths.
2024-12-04 17:44:59 +01:00
brainpower
47942be18d ext/gmp: add test for uses of gmp_pow with number sizes commonly used in cryptography (#16896)
With common number sizes used there

---------

Co-authored-by: Florian Moser <git@famoser.ch>
2024-12-04 16:17:00 +00:00
Jakub Zelenka
b01f5e367f Merge branch 'PHP-8.4' 2024-12-03 18:47:25 +01:00
Jakub Zelenka
7eb7f62cff Merge branch 'PHP-8.3' into PHP-8.4 2024-12-03 18:46:48 +01:00
Jakub Zelenka
b1e3dcf88a PHP-8.3 is now for PHP 8.3.16-dev 2024-12-03 18:45:43 +01:00
Dmitry Stogov
a768a54e18 Merge branch 'PHP-8.4'
* PHP-8.4:
  Fix GH-16996: 8.4 tracing JIT phpseclib failures (#17030)
2024-12-03 20:43:26 +03:00
Dmitry Stogov
89b82ef709 Fix GH-16996: 8.4 tracing JIT phpseclib failures (#17030)
* Fix GH-16996: 8.4 tracing JIT phpseclib failures

This prevents conflicts caused by spilling to bound PHP stack slots by
creating copies.

* Fix build
2024-12-03 20:43:15 +03:00
Dmitry Stogov
0949e7acc7 Merge branch 'PHP-8.4'
* PHP-8.4:
  Fix GH-17003: Pecl 8.4 tracing JIT crash (#17032)
2024-12-03 20:43:02 +03:00
Dmitry Stogov
c5ce74c88c Fix GH-17003: Pecl 8.4 tracing JIT crash (#17032) 2024-12-03 20:42:27 +03:00
Dmitry Stogov
bae4a01de1 Merge branch 'PHP-8.4'
* PHP-8.4:
  PHP-8.4 is now for PHP-8.4.3-dev
2024-12-03 20:42:10 +03:00
Calvin Buckley
f12cd1985e PHP-8.4 is now for PHP-8.4.3-dev 2024-12-03 11:27:18 -04:00
Sergey Panteleev
083792880d Merge branch 'PHP-8.4'
* PHP-8.4:
  PHP-8.2 is now for PHP 8.2.28-dev
2024-12-03 16:49:09 +03:00
Sergey Panteleev
a9a1ac2f8d Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  PHP-8.2 is now for PHP 8.2.28-dev
2024-12-03 16:48:57 +03:00
Sergey Panteleev
432078ec4d Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  PHP-8.2 is now for PHP 8.2.28-dev

# Conflicts:
#	Zend/zend.h
#	configure.ac
#	main/php_version.h
2024-12-03 16:48:39 +03:00
Sergey Panteleev
7fbeee0c2f PHP-8.2 is now for PHP 8.2.28-dev 2024-12-03 16:48:02 +03:00
Christoph M. Becker
85f7e5477a Fix GH-17017: OOB read when starting up file cache (GH-17023)
`zend_system_id` is not zero-terminated; as such we must constrain the
number of characters we print.
2024-12-03 12:13:53 +01:00
Dmitry Stogov
bcb7f9b018 Merge branch 'PHP-8.4'
* PHP-8.4:
  Update IR
2024-12-03 13:01:54 +03:00
Dmitry Stogov
f04a9f466f Update IR
IR commit: 1a41bddcf0a41b9a3866d00b57591b3684c88443
2024-12-03 13:01:31 +03:00
Máté Kocsis
01093b7c13 Merge branch 'PHP-8.4'
* PHP-8.4:
  Fix GH-16990 "dba_list() is now zero-indexed instead of using resource ids"
2024-12-03 00:48:59 +01:00