Skip to content

Commit 42304a6

Browse files
committed
Merge tag 'php-8.4.2' into was-8.4.x
Tag for php-8.4.2
2 parents 23649d1 + 9327bec commit 42304a6

File tree

84 files changed

+1577
-498
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+1577
-498
lines changed

.cirrus.yml

Lines changed: 0 additions & 30 deletions
This file was deleted.

.github/CODEOWNERS

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,16 @@
2929
/ext/json @bukka
3030
/ext/libxml @nielsdos
3131
/ext/mbstring @alexdowad @youkidearitai
32-
/ext/mysqlnd @SakiTakamachi
32+
/ext/mysqli @bukka @kamil-tekiela
33+
/ext/mysqlnd @bukka @kamil-tekiela @SakiTakamachi
3334
/ext/odbc @NattyNarwhal
3435
/ext/opcache @dstogov
3536
/ext/openssl @bukka
3637
/ext/pcntl @devnexen
3738
/ext/pdo @SakiTakamachi
3839
/ext/pdo_dblib @SakiTakamachi
3940
/ext/pdo_firebird @SakiTakamachi
40-
/ext/pdo_mysql @SakiTakamachi
41+
/ext/pdo_mysql @kamil-tekiela @SakiTakamachi
4142
/ext/pdo_odbc @NattyNarwhal @SakiTakamachi
4243
/ext/pdo_pgsql @devnexen @SakiTakamachi
4344
/ext/pdo_sqlite @SakiTakamachi

.github/actions/freebsd/action.yml

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
name: FreeBSD
2+
runs:
3+
using: composite
4+
steps:
5+
- name: FreeBSD
6+
uses: vmactions/freebsd-vm@v1
7+
with:
8+
release: '13.3'
9+
usesh: true
10+
copyback: false
11+
# Temporarily disable sqlite, as FreeBSD ships it with disabled double quotes. We'll need to fix our tests.
12+
# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269889
13+
prepare: |
14+
cd $GITHUB_WORKSPACE
15+
16+
kldload accf_http
17+
pkg install -y \
18+
autoconf \
19+
bison \
20+
gmake \
21+
re2c \
22+
icu \
23+
libiconv \
24+
png \
25+
freetype2 \
26+
enchant2 \
27+
bzip2 \
28+
t1lib \
29+
gmp \
30+
tidyp \
31+
libsodium \
32+
libzip \
33+
libxml2 \
34+
libxslt \
35+
openssl \
36+
oniguruma \
37+
pkgconf \
38+
webp \
39+
libavif \
40+
`#sqlite3` \
41+
curl
42+
43+
./buildconf -f
44+
./configure \
45+
--prefix=/usr/local \
46+
--enable-debug \
47+
--enable-option-checking=fatal \
48+
--enable-fpm \
49+
`#--with-pdo-sqlite` \
50+
--without-sqlite3 \
51+
--without-pdo-sqlite \
52+
--without-pear \
53+
--with-bz2 \
54+
--with-avif \
55+
--with-jpeg \
56+
--with-webp \
57+
--with-freetype \
58+
--enable-gd \
59+
--enable-exif \
60+
--with-zip \
61+
--with-zlib \
62+
--enable-soap \
63+
--enable-xmlreader \
64+
--with-xsl \
65+
--with-libxml \
66+
--enable-shmop \
67+
--enable-pcntl \
68+
--enable-mbstring \
69+
--with-curl \
70+
--enable-sockets \
71+
--with-openssl \
72+
--with-iconv=/usr/local \
73+
--enable-bcmath \
74+
--enable-calendar \
75+
--enable-ftp \
76+
--with-ffi \
77+
--enable-zend-test \
78+
--enable-dl-test=shared \
79+
--enable-intl \
80+
--with-mhash \
81+
--with-sodium \
82+
--enable-werror \
83+
--with-config-file-path=/etc \
84+
--with-config-file-scan-dir=/etc/php.d
85+
gmake -j2
86+
mkdir /etc/php.d
87+
gmake install > /dev/null
88+
echo opcache.enable_cli=1 > /etc/php.d/opcache.ini
89+
echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
90+
echo opcache.preload_user=root >> /etc/php.d/opcache.ini
91+
run: |
92+
cd $GITHUB_WORKSPACE
93+
94+
export SKIP_IO_CAPTURE_TESTS=1
95+
export CI_NO_IPV6=1
96+
export STACK_LIMIT_DEFAULTS_CHECK=1
97+
sapi/cli/php run-tests.php \
98+
-P -q -j2 \
99+
-g FAIL,BORK,LEAK,XLEAK \
100+
--no-progress \
101+
--offline \
102+
--show-diff \
103+
--show-slow 1000 \
104+
--set-timeout 120 \
105+
-d zend_extension=opcache.so

.github/workflows/nightly.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -814,12 +814,14 @@ jobs:
814814
with:
815815
withMysqli: ${{ inputs.libmysqlclient_with_mysqli }}
816816
- name: Build mysql-8.4
817+
if: ${{ !inputs.libmysqlclient_with_mysqli }}
817818
uses: ./.github/actions/build-libmysqlclient
818819
with:
819820
configurationParameters: ${{ !inputs.libmysqlclient_with_mysqli && '--enable-werror' || '' }}
820821
libmysql: mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz
821822
withMysqli: ${{ inputs.libmysqlclient_with_mysqli }}
822823
- name: Test mysql-8.4
824+
if: ${{ !inputs.libmysqlclient_with_mysqli }}
823825
uses: ./.github/actions/test-libmysqlclient
824826
with:
825827
withMysqli: ${{ inputs.libmysqlclient_with_mysqli }}
@@ -979,3 +981,13 @@ jobs:
979981
run: .github/scripts/windows/build.bat
980982
- name: Test
981983
run: .github/scripts/windows/test.bat
984+
FREEBSD:
985+
name: FREEBSD
986+
runs-on: ubuntu-latest
987+
steps:
988+
- name: git checkout
989+
uses: actions/checkout@v4
990+
with:
991+
ref: ${{ inputs.branch }}
992+
- name: FreeBSD
993+
uses: ./.github/actions/freebsd

.github/workflows/push.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,3 +354,11 @@ jobs:
354354
name: profiles
355355
path: ${{ github.workspace }}/benchmark/profiles
356356
retention-days: 30
357+
FREEBSD:
358+
name: FREEBSD
359+
runs-on: ubuntu-latest
360+
steps:
361+
- name: git checkout
362+
uses: actions/checkout@v4
363+
- name: FreeBSD
364+
uses: ./.github/actions/freebsd

.github/workflows/root.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,17 @@ jobs:
4646
matrix:
4747
branch: ${{ fromJson(needs.GENERATE_MATRIX.outputs.branches) }}
4848
with:
49-
asan_ubuntu_version: '20.04'
49+
asan_ubuntu_version: ${{
50+
(((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 5) || matrix.branch.version[0] >= 9) && '24.04')
51+
|| '20.04' }}
5052
branch: ${{ matrix.branch.ref }}
5153
community_verify_type_inference: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
5254
libmysqlclient_with_mysqli: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1) }}
5355
run_alpine: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
5456
run_macos_arm64: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
55-
ubuntu_version: ${{ ((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 3) || matrix.branch.version[0] >= 9) && '22.04' || '20.04' }}
57+
ubuntu_version: ${{
58+
(((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 5) || matrix.branch.version[0] >= 9) && '24.04')
59+
|| ((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 3) && '22.04')
60+
|| '20.04' }}
5661
windows_version: ${{ ((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9) && '2022' || '2019' }}
5762
secrets: inherit

NEWS

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,107 @@
11
PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3+
19 Dec 2024, PHP 8.4.2
4+
5+
- BcMath:
6+
. Fixed bug GH-16978 (Avoid unnecessary padding with leading zeros)
7+
(Saki Takamachi)
8+
9+
- Calendar:
10+
. Fixed jdtogregorian overflow. (David Carlier)
11+
. Fixed cal_to_jd julian_days argument overflow. (David Carlier)
12+
13+
- COM:
14+
. Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults).
15+
(cmb)
16+
17+
- Core:
18+
. Fail early in *nix configuration build script. (hakre)
19+
. Fixed bug GH-16344 (setRawValueWithoutLazyInitialization() and
20+
skipLazyInitialization() may change initialized proxy). (Arnaud)
21+
. Fixed bug GH-16727 (Opcache bad signal 139 crash in ZTS bookworm
22+
(frankenphp)). (nielsdos)
23+
. Fixed bug GH-16799 (Assertion failure at Zend/zend_vm_execute.h:7469).
24+
(nielsdos)
25+
. Fixed bug GH-16630 (UAF in lexer with encoding translation and heredocs).
26+
(nielsdos)
27+
. Fix is_zend_ptr() huge block comparison. (nielsdos)
28+
. Fixed potential OOB read in zend_dirname() on Windows. (cmb)
29+
. Fixed bug GH-15964 (printf() can strip sign of -INF). (divinity76, cmb)
30+
31+
- Curl:
32+
. Fixed bug GH-16802 (open_basedir bypass using curl extension). (nielsdos)
33+
. Fix various memory leaks in curl mime handling. (nielsdos)
34+
35+
- DBA:
36+
. Fixed bug GH-16990 (dba_list() is now zero-indexed instead of using
37+
resource ids) (kocsismate)
38+
39+
- DOM:
40+
. Fixed bug GH-16777 (Calling the constructor again on a DOM object after it
41+
is in a document causes UAF). (nielsdos)
42+
. Fixed bug GH-16906 (Reloading document can cause UAF in iterator).
43+
(nielsdos)
44+
45+
- FPM:
46+
. Fixed GH-16432 (PHP-FPM 8.2 SIGSEGV in fpm_get_status). (Jakub Zelenka)
47+
. Fixed bug GH-16932 (wrong FPM status output). (Jakub Zelenka, James Lucas)
48+
49+
- GD:
50+
. Fixed GH-16776 (imagecreatefromstring overflow). (David Carlier)
51+
52+
- GMP:
53+
. Fixed bug GH-16890 (array_sum() with GMP can loose precision (LLP64)).
54+
(cmb)
55+
56+
- Hash:
57+
. Fixed GH-16711: Segfault in mhash(). (Girgias)
58+
59+
- Opcache:
60+
. Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads).
61+
(dktapps)
62+
. Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64). (nielsdos)
63+
. Fixed bug GH-16879 (JIT dead code skipping does not update call_level).
64+
(nielsdos)
65+
66+
- OpenSSL:
67+
. Prevent unexpected array entry conversion when reading key. (nielsdos)
68+
. Fix various memory leaks related to openssl exports. (nielsdos)
69+
. Fix memory leak in php_openssl_pkey_from_zval(). (nielsdos)
70+
71+
- PDO:
72+
. Fixed memory leak of `setFetchMode()`. (SakiTakamachi)
73+
74+
- Phar:
75+
. Fixed bug GH-16695 (phar:// tar parser and zero-length file header blocks).
76+
(nielsdos, Hans Krentel)
77+
78+
- PHPDBG:
79+
. Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()).
80+
(nielsdos)
81+
82+
- SAPI:
83+
. Fixed bug GH-16998 (UBSAN warning in rfc1867). (nielsdos)
84+
85+
- SimpleXML:
86+
. Fixed bug GH-16808 (Segmentation fault in RecursiveIteratorIterator
87+
->current() with a xml element input). (nielsdos)
88+
89+
- SOAP:
90+
. Fix make check being invoked in ext/soap. (Ma27)
91+
92+
- Standard:
93+
. Fixed bug GH-16905 (Internal iterator functions can't handle UNDEF
94+
properties). (nielsdos)
95+
. Fixed bug GH-16957 (Assertion failure in array_shift with
96+
self-referencing array). (nielsdos)
97+
98+
- Streams:
99+
. Fixed network connect poll interuption handling. (Jakub Zelenka)
100+
101+
- Windows:
102+
. Fixed bug GH-16849 (Error dialog causes process to hang). (cmb)
103+
. Windows Server 2025 is now properly reported. (cmb)
104+
3105
21 Nov 2024, PHP 8.4.1
4106

5107
- BcMath:

UPGRADING

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,12 +127,12 @@ PHP 8.4 UPGRADE NOTES
127127
ValueErrors if it is not an array of class names.
128128
. XMLReader:
129129
. Passing an invalid character encoding to XMLReader::open() or
130-
XMLReader::XML() now throws a ValueError.
131-
. Passing a string containing null bytes previously emitted a
132-
warning and now throws a ValueError as well.
130+
XMLReader::XML() now throws a ValueError. Passing an encoding
131+
containing null bytes previously emitted a warning and now throws
132+
a ValueError as well.
133133
. XMLWriter:
134-
. Passing a string containing null bytes previously emitted a
135-
warning and now throws a ValueError as well.
134+
. Passing an encoding containing null bytes previously emitted a
135+
warning and now throws a ValueError.
136136
. XSL:
137137
. XSLTProcessor::setParameter() will now throw a ValueError when its
138138
arguments contain null bytes. This never actually worked correctly in

0 commit comments

Comments
 (0)