Skip to content

Commit 0446bad

Browse files
committed
Merge tag 'php-8.2.27' into was-8.2.x
Tag for php-8.2.27
2 parents 167ae77 + 769e1b5 commit 0446bad

File tree

102 files changed

+1725
-425
lines changed

Some content is hidden

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

102 files changed

+1725
-425
lines changed

.cirrus.yml

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

.github/CODEOWNERS

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

.github/actions/freebsd/action.yml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
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+
--with-config-file-path=/etc \
83+
--with-config-file-scan-dir=/etc/php.d
84+
gmake -j2
85+
mkdir /etc/php.d
86+
gmake install > /dev/null
87+
echo opcache.enable_cli=1 > /etc/php.d/opcache.ini
88+
echo opcache.protect_memory=1 >> /etc/php.d/opcache.ini
89+
echo opcache.preload_user=root >> /etc/php.d/opcache.ini
90+
run: |
91+
cd $GITHUB_WORKSPACE
92+
93+
export SKIP_IO_CAPTURE_TESTS=1
94+
export CI_NO_IPV6=1
95+
export STACK_LIMIT_DEFAULTS_CHECK=1
96+
sapi/cli/php run-tests.php \
97+
-P -q -j2 \
98+
-g FAIL,BORK,LEAK,XLEAK \
99+
--no-progress \
100+
--offline \
101+
--show-diff \
102+
--show-slow 1000 \
103+
--set-timeout 120 \
104+
-d zend_extension=opcache.so

.github/workflows/labeler.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ on:
44

55
jobs:
66
triage:
7+
if: github.repository == 'php/php-src'
78
permissions:
89
contents: read
910
pull-requests: write

.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
@@ -217,3 +217,11 @@ jobs:
217217
run: .github/scripts/windows/build.bat
218218
- name: Test
219219
run: .github/scripts/windows/test.bat
220+
FREEBSD:
221+
name: FREEBSD
222+
runs-on: ubuntu-latest
223+
steps:
224+
- name: git checkout
225+
uses: actions/checkout@v4
226+
- name: FreeBSD
227+
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: 83 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,86 @@
11
PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3+
19 Dec 2024, PHP 8.2.27
4+
5+
- Calendar:
6+
. Fixed jdtogregorian overflow. (David Carlier)
7+
. Fixed cal_to_jd julian_days argument overflow. (David Carlier)
8+
9+
- COM:
10+
. Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults).
11+
(cmb)
12+
13+
- Core:
14+
. Fail early in *nix configuration build script. (hakre)
15+
. Fixed bug GH-16727 (Opcache bad signal 139 crash in ZTS bookworm
16+
(frankenphp)). (nielsdos)
17+
. Fixed bug GH-16799 (Assertion failure at Zend/zend_vm_execute.h:7469).
18+
(nielsdos)
19+
. Fixed bug GH-16630 (UAF in lexer with encoding translation and heredocs).
20+
(nielsdos)
21+
. Fix is_zend_ptr() huge block comparison. (nielsdos)
22+
. Fixed potential OOB read in zend_dirname() on Windows. (cmb)
23+
24+
- Curl:
25+
. Fix various memory leaks in curl mime handling. (nielsdos)
26+
27+
- FPM:
28+
. Fixed GH-16432 (PHP-FPM 8.2 SIGSEGV in fpm_get_status). (Jakub Zelenka)
29+
30+
- GD:
31+
. Fixed GH-16776 (imagecreatefromstring overflow). (David Carlier)
32+
33+
- GMP:
34+
. Revert gmp_pow() overly restrictive overflow checks.
35+
(David Carlier)
36+
37+
- Hash:
38+
. Fixed GH-16711: Segfault in mhash(). (Girgias)
39+
40+
- Opcache:
41+
. Fixed bug GH-16770 (Tracing JIT type mismatch when returning UNDEF).
42+
(nielsdos, Dmitry)
43+
. Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads).
44+
(dktapps)
45+
. Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64). (nielsdos)
46+
47+
- OpenSSL:
48+
. Prevent unexpected array entry conversion when reading key. (nielsdos)
49+
. Fix various memory leaks related to openssl exports. (nielsdos)
50+
. Fix memory leak in php_openssl_pkey_from_zval(). (nielsdos)
51+
52+
- PDO:
53+
. Fixed memory leak of `setFetchMode()`. (SakiTakamachi)
54+
55+
- Phar:
56+
. Fixed bug GH-16695 (phar:// tar parser and zero-length file header blocks).
57+
(nielsdos, Hans Krentel)
58+
59+
- PHPDBG:
60+
. Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()).
61+
(nielsdos)
62+
63+
- SAPI:
64+
. Fixed bug GH-16998 (UBSAN warning in rfc1867). (nielsdos)
65+
66+
- SimpleXML:
67+
. Fixed bug GH-16808 (Segmentation fault in RecursiveIteratorIterator
68+
->current() with a xml element input). (nielsdos)
69+
70+
- SNMP:
71+
. Fixed bug GH-16959 (snmget modifies the object_id array).
72+
(David Carlier)
73+
74+
- Standard:
75+
. Fixed bug GH-16905 (Internal iterator functions can't handle UNDEF
76+
properties). (nielsdos)
77+
78+
- Streams:
79+
. Fixed network connect poll interuption handling. (Jakub Zelenka)
80+
81+
- Windows:
82+
. Fixed bug GH-16849 (Error dialog causes process to hang). (cmb)
83+
384
21 Nov 2024, PHP 8.2.26
485

586
- CLI:
@@ -22,6 +103,8 @@ PHP NEWS
22103
. Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed
23104
early bound classes). (ilutov)
24105
. Fixed bug GH-16648 (Use-after-free during array sorting). (ilutov)
106+
. Fixed bug GH-15915 (overflow with a high value for precision INI).
107+
(David Carlier / cmb)
25108

26109
- Curl:
27110
. Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if
@@ -69,13 +152,9 @@ PHP NEWS
69152
(nielsdos)
70153

71154
- GMP:
72-
. Fixed floating point exception bug with gmp_pow when using
73-
large exposant values. (David Carlier).
74155
. Fixed bug GH-16411 (gmp_export() can cause overflow). (cmb)
75156
. Fixed bug GH-16501 (gmp_random_bits() can cause overflow).
76157
(David Carlier)
77-
. Fixed gmp_pow() overflow bug with large base/exponents.
78-
(David Carlier)
79158
. Fixed segfaults and other issues related to operator overloading with
80159
GMP objects. (Girgias)
81160

Zend/tests/gh16630.phpt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
--TEST--
2+
GH-16630 (UAF in lexer with encoding translation and heredocs)
3+
--EXTENSIONS--
4+
mbstring
5+
--INI--
6+
zend.multibyte=On
7+
zend.script_encoding=ISO-8859-1
8+
internal_encoding=EUC-JP
9+
--FILE--
10+
<?php
11+
$data3 = <<<CODE
12+
heredoc
13+
text
14+
CODE;
15+
echo $data3;
16+
?>
17+
--EXPECT--
18+
heredoc
19+
text

Zend/tests/gh16799.phpt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
--TEST--
2+
GH-16799 (Assertion failure at Zend/zend_vm_execute.h)
3+
--FILE--
4+
<?php
5+
set_error_handler(function($_, $m) { throw new Exception($m); });
6+
class Test {
7+
static function test() {
8+
call_user_func("static::ok");
9+
}
10+
static function ok() {
11+
}
12+
}
13+
Test::test();
14+
?>
15+
--EXPECTF--
16+
Fatal error: Uncaught Exception: Use of "static" in callables is deprecated in %s:%d
17+
Stack trace:
18+
#0 %s(%d): {closure}(%d, 'Use of "static"...', %s, %d)
19+
#1 %s(%d): Test::test()
20+
#2 {main}
21+
thrown in %s on line %d

0 commit comments

Comments
 (0)