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

132216 Commits

Author SHA1 Message Date
Pierrick Charron
a3695d49e8 Update versions for PHP 8.2.26 php-8.2.26 2024-11-19 12:11:09 -05:00
Jakub Zelenka
ce961b52f3 Update NEWS with security fixes info 2024-11-18 17:00:16 +01:00
Jakub Zelenka
913031c844 Fix MySQLnd possible buffer over read in auth_protocol 2024-11-18 16:58:55 +01:00
Christoph M. Becker
5284abd383 Adapt ext/intl tests for ICU 75.1 and 76.1
Closes GH-16788.
2024-11-18 11:45:08 +01:00
Jakub Zelenka
abc6de0dde Make MySQLnd protocol stmt test work on 32bit 2024-11-18 11:05:43 +01:00
Christoph M. Becker
5a55ef021c Need to define BREW_OPT
This is only defined as of PHP-8.4; alternatively we could also inline
the `brew --prefix` call, but that makes it harder for upward merges.

Closes GH-16785.
2024-11-18 11:01:02 +01:00
Christoph M. Becker
15cc4424bb Patch libcurl.pc for macOS builds
cURL 8.11.0 added a couple of packages to `Requires.private`, but these
packages are irrelevant when building against a shared libcurl.  For
some reason, these private requirements are checked when we're doing
`pkg-config --cflags` (that happens with the preinstalled pkg-config
0.29.2, as well as with pkgconf 2.3.0).  To avoid further messing with
these packages, we just drop the `Requires.private` line from
libcurl.pc.

See GH-16741 for more details.

Closes GH-16783.
2024-11-18 11:00:47 +01:00
Niels Dossche
3ec6ac482e Fix GHSA-4w77-75f9-2c8w 2024-11-18 10:56:27 +01:00
Niels Dossche
a6c84cd7ef Fix GHSA-r977-prxv-hc43
Move the bound check upwards. Since this doesn't generate output we can
check the bound first.
2024-11-18 09:05:33 +01:00
Jakub Zelenka
6c0e2eb2f8 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-18 09:05:07 +01:00
Niels Dossche
90c851a8b1 Fix GHSA-g665-fm4p-vhff: OOB access in ldap_escape 2024-11-18 09:04:56 +01:00
Jakub Zelenka
cf6700e86d Fix GHSA-c5f2-jwm7-mmq2: stream HTTP fulluri CRLF injection 2024-11-18 09:03:32 +01:00
Niels Dossche
2dbe1425c5 Fix GHSA-5hqh-c84r-qjcv: Integer overflow in the firebird quoter causing OOB writes 2024-11-18 09:03:20 +01:00
Niels Dossche
7742f79a8a Fix GHSA-5hqh-c84r-qjcv: Integer overflow in the dblib quoter causing OOB writes 2024-11-18 09:03:06 +01:00
Niels Dossche
5ddb75660d Fix various memory leaks on error conditions in openssl_x509_parse()
Closes GH-16690.
2024-11-04 20:03:53 +01:00
Ilija Tovilo
418f820f5d Add NEWS entry 2024-11-04 17:46:17 +01:00
Ilija Tovilo
f7222bd2de Also fix same issue in ArrayObject::exchangeArray() 2024-11-04 17:46:17 +01:00
Ilija Tovilo
8910ac800d Fix use-after-free in ArrayObject::unset() with destructor
Fixes GH-16646
Closes GH-16653
2024-11-04 17:45:56 +01:00
Ilija Tovilo
845cdbce67 Postpone zend_array_sort() in ext-intl
This function is not ZEND_API yet, so we cannot use it as it won't work for
dynamically linked extensions.
2024-11-04 16:01:00 +01:00
Ilija Tovilo
4b9e59b430 [skip ci] Use bool for zend_array_sort()
zend_bool is removed in higher branches.
2024-11-04 15:59:18 +01:00
Ilija Tovilo
2bdce61390 Fix array going away during sorting
Fixes GH-16648
Closes GH-16654
2024-11-04 15:50:35 +01:00
Ilija Tovilo
2985de72db [skip ci] Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci] Fix nightly workflow dispatch
2024-11-04 15:03:47 +01:00
Ilija Tovilo
e72854e8bc [skip ci] Fix nightly workflow dispatch
Closes GH-16662
2024-11-04 15:02:11 +01:00
David Carlier
90aac521fd Fix GH-16592 msg_send() crashes when the type does not serialize as expected.
It is assumed that the serialization always had initialised its buffer
zend_string, but in the case of a type not serialising, it is null.

close GH-16599
2024-11-03 13:39:24 +00:00
Niels Dossche
e643129bbb Fix GH-16628: FPM logs are getting corrupted with this log statement
zlog_buf_prefix() can return a larger length than what actually was
written due to its use of snprintf(). The code in
zlog_stream_prefix_ex() does not take this into account, other callers
do. What ends up happening then is that stream->length is set to the
length as if snprintf() was able to write all bytes, causing
stream->length to become larger than stream->buf.size, causing a
segfault.

In case the buffer was too small we try with a larger buffer up to a
limit of zlog_limit. This makes sure that the stream length will remain
bounded by the buffer size.

This also adds assertions to make the programmer intent clear and catch
this more easily in debug builds.

Closes GH-16680.
2024-11-02 19:36:20 +01:00
Niels Dossche
f0f666ba3f Fix GH-16601: Memory leak in Reflection constructors
Additionally fixes wrong behaviour in ReflectionParameter when you first
have a construction that uses an object and the subsequent doesn't.

Closes GH-16672.
2024-11-02 19:35:20 +01:00
Gina Peter Banyard
5253647500 ext/gmp: Fix segfault when null is encountered on an overloaded operator
And various other issues like inconsistent type errors

Closes GH-16015
2024-11-02 17:36:32 +00:00
Gina Peter Banyard
fe02fd5095 ext/gmp: Add behavioural tests for operator overloading 2024-11-02 17:32:43 +00:00
Christoph M. Becker
f9453a889d Fix GH-14732: date_sun_info() fails for non-finite values
`timelib_astro_rise_set_altitude()` is not prepared to deal with non-
finite values (`nan`, `inf` and `-inf`) for `lon` and `lat`; instead
these trigger undefined behavior.  Thus we catch non-finite values
before even calling that timelib function; for `date_sun_info()` we
trigger `ValueError`s; for `date_sunrise()` and `date_sunset()` we
silently return `false`, since these functions will be sunsetted
anyway.

Closes GH-16497.
2024-11-01 23:46:19 +01:00
Niels Dossche
886a5287ca Fix GH-16604: Memory leaks in SPL constructors
Closes GH-16673.
2024-11-01 20:42:28 +01:00
Christoph M. Becker
ec68d3c608 Properly initialize _override executor globals
These have been introduced a while ago[1], but their initialization has
been overlooked.  Since we cannot rely on TLS variables to be zeroed,
we catch up on this.

[1] <e3ef7bbbb8>

Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com>

Closes GH-16658.
2024-10-31 23:38:01 +01:00
Christoph M. Becker
c9eafc1954 Fix GH-16450: PDO_ODBC can inject garbage into field values
A previous bug fix[1] relied on ODBC drivers to properly count down the
`StrLen_or_IndPtr` argument for consecutive calls to `SQLGetData()`.
Apparently, not all drivers handle this correctly, so we cannot assert
they do.  Instead we fall back to the old behavior for drivers which
would violate the assertion.

A test against SQLServer (which we currently use in CI) would not make
sense, since the respective drivers do not exhibit that behavior.
Instead we target the regression test especially to a MS Access
database.

Since there is apparently no way to easily create an MS Access database
programmatically, we commit a minimal empty DB which is used for the
regression test, and could also be used by other test cases.

[1] <bccca0b53aa60a62e2988c750fc73c02d109e642>

Closes GH-16587.
2024-10-31 16:15:17 +01:00
Ilija Tovilo
e5d63eb4b9 [skip ci] Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci] Properly disable -Werror for libmysqlclient + mysqli
  [skip ci] Revert "Remove -Werror for libmysql test on 8.1 only"
2024-10-31 13:47:23 +01:00
Ilija Tovilo
6c8a0d0163 [skip ci] Properly disable -Werror for libmysqlclient + mysqli 2024-10-31 13:43:39 +01:00
Ilija Tovilo
8a067cc221 [skip ci] Revert "Remove -Werror for libmysql test on 8.1 only"
This reverts commit 769947648e.

Nightly uses the file from master, so this change made no sense.
2024-10-31 13:40:26 +01:00
Ilija Tovilo
64fbd52cb4 [skip ci] Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci] Fix nightly job name for 8.1
2024-10-31 13:38:06 +01:00
Ilija Tovilo
490acdf5e9 [skip ci] Fix nightly job name for 8.1 2024-10-31 13:37:23 +01:00
Ilija Tovilo
9e5024d988 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci] Move nightly to workflow_call
2024-10-30 16:54:11 +01:00
Ilija Tovilo
08bbd7d167 [skip ci] Move nightly to workflow_call
This PR removes most of the logic of nightly_matrix.php by converting
nightly.yml to a workflow_call, and invoking it multiple times for each branch
in a new root.yml workflow. The naming of the files is intentionally kept to
make the diff readable. They may still be renamed afterward.

Closes GH-16642
2024-10-30 16:53:55 +01:00
Ilija Tovilo
d2b78a1466 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Remove -Werror for libmysql test on 8.1 only
2024-10-30 14:48:00 +01:00
Ilija Tovilo
769947648e Remove -Werror for libmysql test on 8.1 only 2024-10-30 14:47:15 +01:00
Ilija Tovilo
58a5fa7224 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Partial backport of e7462bf
2024-10-30 14:23:51 +01:00
Ilija Tovilo
ed041c3443 Partial backport of e7462bf
e7462bff19
2024-10-30 14:20:47 +01:00
Ilija Tovilo
cf4c0182b6 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [CI] Backport usage of db service for 8.1
2024-10-30 12:21:34 +01:00
Ilija Tovilo
560a585117 [CI] Backport usage of db service for 8.1
Nightly already uses them. We're running into port clashes otherwise.

Closes GH-16647
2024-10-30 12:20:42 +01:00
Ilija Tovilo
9ad99bb56d Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Backport nightly.yml and nightly_matrix.php to PHP-8.1
2024-10-29 15:33:27 +01:00
Ilija Tovilo
27e8860594 Backport nightly.yml and nightly_matrix.php to PHP-8.1
These files are usually only used on master, as the cron trigger runs on master.
However, workflow_dispatch does use the file from the triggered branch.
Furthermore, we're looking into migrating to a workflow_call trigger, which will
also run on the target branch. Backport these files now to make those changes
easier.
2024-10-29 15:30:34 +01:00
David Carlier
eeec0939e0 Fix GH-14687 segfault on debugging a freed SplObjectIterator instance.
close GH-14711
2024-10-28 21:21:44 +00:00
Niels Dossche
9d8983c061 Fix GH-16595: Another UAF in DOM -> cloneNode
We need to perform all sanity checks before doing any modification.
I don't have a reliable and easy test for this on 8.2, but I have one
for 8.4.

Closes GH-16598.
2024-10-28 19:37:08 +01:00
Niels Dossche
d89dd28d3b Fix GH-16593: Assertion failure in DOM->replaceChild
This is already forbidden by libxml, but this condition isn't properly
checked; so the return value and lack of error makes it seem like it
worked while it actually didn't. Furthermore, this can break assumptions
and assertions later on.

Closes GH-16596.
2024-10-28 19:36:29 +01:00