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

132299 Commits

Author SHA1 Message Date
Sergey Panteleev
769e1b521b Update versions for PHP 8.2.27 php-8.2.27 2024-12-17 14:39:23 +03:00
Niels Dossche
1a6f8a0b79 Fix some MariaDB test failures
Allow other wording too such that these mysqli tests pass.

Closes GH-17004.
2024-12-02 19:20:54 +01:00
David Carlier
73ebc92617 Fix GH-16959: snmpget modifies the object_id (as array).
Instead of modifying the zval, we use the zend_try_get_string.

close GH-16969
2024-12-01 13:57:31 +00:00
Niels Dossche
aab784263d Fix GH-16998: UBSAN warning in rfc1867
The "else branch" of `next_line` can reset the `buf_begin` field to
NULL, causing the next invocation to pass NULL to `memchr` with a 0
length. When UBSAN is enabled this causes an UBSAN abort. Real world
impact is likely none because of the 0 length.

To fix this, don't set the pointer to NULL, which means that the
`memchr` will return NULL and since
`self->bytes_in_buffer < self->bufsize` we return NULL and request more
data through `fill_buffer`. That function will reset `buf_begin` and
`bytes_in_buffer` so that the next invocation works fine.

I chose this solution so we have an invariant that `buf_begin` is never
NULL, which makes reasoning easier. An alternative solution is keeping
the NULLing of `buf_begin` and add an extra check at the top of
`next_line`, but I didn't like special casing this.

Closes GH-17000.
2024-12-01 10:59:30 +01:00
Christoph M. Becker
94fa2a4ce1 Fix potential OOB read in zend_dirname() on Windows
Only on Windows `IS_SLASH_P()` may read the previous byte, and so may
in unlikely cases read one byte out of bounds.  Since `IS_SLASH_P()` is
in a public header (albeit not likely to be used by external extensions
or SAPIs), we introduce `IS_SLASH_P_EX()` which accepts a second
argument to prevent that OOB read.

It should be noted that the PHP userland function `dirname()` is not
affected by this issue, since it does not call `zend_dirname()` on
Windows.

Closes GH-16995.
2024-11-29 22:08:06 +01:00
Christoph M. Becker
9bae8933a3 Fix GH-16991: Getting typeinfo of non DISPATCH variant segfaults
We must not assume that any `VARIANT` implements `IDispatch`.

Closes GH-16992.
2024-11-29 16:29:11 +01:00
Jakub Zelenka
69765d9220 Fix network connect poll interuption handling
When connecting to socket, it is possible to get EINTR. In such case,
there should be an another attempt to connect if we are not over the
timeout. The timeout should be adjusted accordingly in that case.

This fixes https://github.com/phpredis/phpredis/issues/1881

Closes GH-16606
2024-11-29 07:54:06 +01:00
Niels Dossche
e1b4534790 Fix GH-16905: Internal iterator functions can't handle UNDEF properties
Closes GH-16907.
2024-11-28 19:22:10 +01:00
David Carlier
5fd53a8b93 [skip ci] NEWS 2024-11-27 19:53:09 +00:00
David Carlier
7e8d6f941c Revert "ext/gmp: gmp_pow fix FPE with large values."
This reverts commit d70b7811b0.
2024-11-27 19:52:07 +00:00
David Carlier
45140e527f Revert "ext/gmp: gmp_pow fix FPE with large values."
This reverts commit e0a0e216a9.
2024-11-27 19:52:04 +00:00
Niels Dossche
97b03186c4 Fix GH-15208: Segfault with breakpoint map and phpdbg_clear()
It crashes because it's gonna try accessing the breakpoint which was cleared
by user code in `phpdbg_clear();`. Not all breakpoint data was properly
cleaned.

Closes GH-16953.
2024-11-26 22:26:37 +01:00
Michael Orlitzky
ae84b81bfa Backport GH-14962 to stable versions
Alpine CI regularly fails because of the sorting order of these tests.
See https://github.com/php/php-src/pull/14962#issuecomment-2498799881

Closes GH-16950.
2024-11-26 21:24:48 +01:00
Niels Dossche
a80f0b515a Fix various memory leaks in curl mime handling
Closes GH-16745.
2024-11-26 20:37:22 +01:00
Niels Dossche
18674e39ad Fix is_zend_ptr() huge block comparison
We should compare the block memory, not the block metadata (See
zend_mm_add_huge_block).
This caused random test failure for ext/ffi/tests/gh14626.phpt when the
malloc() performed by the FFI code lies close to the block metadata, and
the size of the block is large enough.

This was reported by https://github.com/php/php-src/issues/16902#issuecomment-2498310452

Closes GH-16938.
2024-11-26 19:24:05 +01:00
Derick Rethans
d1b9d7ee83 Fixed CS 2024-11-26 15:40:46 +00:00
Christoph M. Becker
e75061b512 Fix GH-16849: Error dialog causes process to hang
If `_DEBUG` is set, assertion failures and errors are directed to a
debug message window by default[1].  That causes a process to hang,
since these dialogs are modal.  While we already cater to assertion
failures, errors have apparently been overlooked.

We choose a minimal fix for BC reasons; although passing `0` as
`reportMode` is undocumented, it obviously works fine for a long time.
We may consider to improve on this for the `master` branch.

[1] <https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/crtsetreportmode>

Closes GH-16850.
2024-11-25 23:04:51 +01:00
Niels Dossche
de96b43d2a Fix GH-16902: Set of opcache tests fail zts+aarch64 (8.2-8.3)
Closes GH-16925.
2024-11-25 19:49:33 +01:00
Niels Dossche
99f5653ebb Fix GH-16908: _ZendTestMagicCallForward does not handle references well
This testing code was never meant to be used this way, but fixing this
will at least stop fuzzers from complaining about this, so might still
be worthwhile.

Closes GH-16919.
2024-11-25 19:38:33 +01:00
Christoph M. Becker
12ef3da381 Fix potential conflict of copy_variation5-win32.phpt
copy_variation1.phpt also creates and deletes a file copy.tmp in the
same folder, so conflicts may occur[1].  We apply a quick fix.

[1] <https://github.com/php/php-src/actions/runs/11902293714/job/33167012826>

Closes GH-16854.
2024-11-25 13:48:50 +01:00
Ayesh Karunaratne
9d61cb8fe7 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  CI: FreeBSD on VM - set `copyback: false`
2024-11-25 19:31:45 +07:00
Ayesh Karunaratne
b263f351c4 CI: FreeBSD on VM - set copyback: false
The `vmactions/freebsd-vm` GitHub action rsyncs the work dir to to the
VM. This adds a lot of log output due to `rsync -v` usage.

Once the tests are compelte, the action copies the files _back_ by
running `rsync` in reverse. However, we do not need these files back
because we do not run any other steps that need access to the post-test
files.

Setting `copyback: false` disables this, and cuts the log size by about
5,000 lines.

Closes Closes GH-16916.
2024-11-25 19:30:19 +07:00
Jakub Zelenka
173175badd Merge branch 'PHP-8.1' into PHP-8.2 2024-11-24 23:49:04 +01:00
Jakub Zelenka
eb951b3d11 Increase MySQLi fake server read timeout for ASAN job 2024-11-24 23:48:27 +01:00
Jakub Zelenka
06082671f4 Merge branch 'PHP-8.1' into PHP-8.2 2024-11-24 20:14:29 +01:00
Jakub Zelenka
51f5539914 Change port for mysqli fake server auth message test 2024-11-24 20:13:47 +01:00
Jakub Zelenka
866d8d7ce6 Update code owners for mysqli, mysqlnd and pdo_mysql [ci skip] (#16921) 2024-11-24 19:45:22 +01:00
Dylan K. Taylor
ff3b4eca0e Fix GH-16851: JIT_G(enabled) not set correctly on other threads
There doesn't seem to be a thread post-startup hook that runs after
zend_startup_cb() that could be used for this

this fix is similar to accel_startup_ok() as seen here: fc1db70f10/ext/opcache/ZendAccelerator.c (L2631-L2634)

Closes GH-16853.
2024-11-20 19:11:44 +01:00
Christoph M. Becker
3656a84c39 Skip file_put_contents_variation7.phpt on Windows
While the test obviously succeeds on Windows, it may occasionally
conflict with file_put_contents_variation7-win32.phpt[1], so we skip it
like we do for many other of these tests which have win32 pendants.

[1] <https://github.com/php/php-src/actions/runs/11527743659/job/32093951818>

Closes GH-16722.
2024-11-20 15:50:24 +01:00
Ilija Tovilo
02ef371eab [skip ci] Add --no-progress to FreeBSD build 2024-11-20 14:25:54 +01:00
Ilija Tovilo
12f20ce407 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Move FreeBSD build to GitHub actions with QEMU
2024-11-20 14:25:25 +01:00
Ilija Tovilo
aca88baf5f Move FreeBSD build to GitHub actions with QEMU
Closes GH-16822
2024-11-20 14:24:02 +01:00
Ilija Tovilo
aa40d3abcc Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci] Don't test mysqli with libmysqlclient 8.4
2024-11-20 14:19:10 +01:00
Ilija Tovilo
e23ac8341a [skip ci] Don't test mysqli with libmysqlclient 8.4
There are compile errors with 8.4 that we are no longer fixing.
2024-11-20 14:19:02 +01:00
Christoph M. Becker
dedb0f8877 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Make MySQLnd protocol stmt test work on 32bit
2024-11-20 13:53:16 +01:00
Jakub Zelenka
c70b97d8eb Make MySQLnd protocol stmt test work on 32bit
Closes GH-16869.
2024-11-20 13:52:53 +01:00
Ilija Tovilo
f8c37dc971 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci] Backport GA root workflow changes
2024-11-20 13:42:28 +01:00
Ilija Tovilo
9acf0a4009 [skip ci] Backport GA root workflow changes 2024-11-20 13:41:39 +01:00
Jakub Zelenka
78c201a310 Update NEWS with security fixes info 2024-11-20 11:09:13 +01:00
Niels Dossche
f18d429b20 Fix GHSA-4w77-75f9-2c8w 2024-11-20 11:07:28 +01:00
Niels Dossche
f3ade203d7 Fix GHSA-r977-prxv-hc43
Move the bound check upwards. Since this doesn't generate output we can
check the bound first.
2024-11-20 11:07:04 +01:00
Jakub Zelenka
d37a20c4a2 Fix MySQLnd possible buffer over read in auth_protocol 2024-11-20 11:06:53 +01:00
Jakub Zelenka
a21e48a93a Make MySQLnd protocol stmt test work on 32bit 2024-11-20 11:06:43 +01:00
Jakub Zelenka
c595455300 Fix GHSA-h35g-vwh6-m678: Mysqlnd - various heap buffer over-reads
This fixes issues causing buffer over-read that leak heap content:
- RESP packet field default left over for COM_LIST
- RESP packet upsert filename
- OK packet message
- RESP packet for stmt row data
  - ps_fetch_from_1_to_8_bytes
  - ps_fetch_float
  - ps_fetch_double
  - ps_fetch_time
  - ps_fetch_date
  - ps_fetch_datetime
  - ps_fetch_string
  - ps_fetch_bit
- RESP packet for query row data (just possible overflow on 32bit)

It also adds various protocol tests using a new fake server.
2024-11-20 11:06:26 +01:00
Niels Dossche
fba659abb9 Fix GHSA-g665-fm4p-vhff: OOB access in ldap_escape 2024-11-20 11:06:12 +01:00
Jakub Zelenka
d7fe40868e Fix GHSA-c5f2-jwm7-mmq2: stream HTTP fulluri CRLF injection 2024-11-20 11:06:02 +01:00
Niels Dossche
7a25e7728d Fix GHSA-5hqh-c84r-qjcv: Integer overflow in the firebird quoter causing OOB writes 2024-11-20 11:05:55 +01:00
Niels Dossche
4a79a5a59a Fix GHSA-5hqh-c84r-qjcv: Integer overflow in the dblib quoter causing OOB writes 2024-11-20 11:05:48 +01:00
Dmitry Stogov
ef5844a1ca Use the immutable twin of temporary op_array (#16861) 2024-11-19 20:55:15 +03:00
Patrick Allaert
27a9965b97 Merge branch 'PHP-8.1' into PHP-8.2 2024-11-19 16:11:41 +01:00