Skip to content

Commit 75748c7

Browse files
committed
Merge tag 'php-8.3.6' into was-8.3.x
Tag for php-8.3.6
2 parents e4adc67 + 6e8a26f commit 75748c7

File tree

96 files changed

+1402
-358
lines changed

Some content is hidden

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

96 files changed

+1402
-358
lines changed

.cirrus.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ env:
44
freebsd_task:
55
name: FREEBSD_DEBUG_NTS
66
freebsd_instance:
7-
image_family: freebsd-13-2
7+
image_family: freebsd-13-3
88
env:
99
ARCH: amd64
1010
install_script:
@@ -14,7 +14,7 @@ freebsd_task:
1414
- pkg install -y autoconf bison gmake re2c icu libiconv png freetype2 enchant2 bzip2 krb5 t1lib gmp tidyp libsodium libzip libxml2 libxslt openssl oniguruma pkgconf webp libavif
1515
script:
1616
- ./buildconf -f
17-
- ./configure --prefix=/usr/local --enable-debug --enable-option-checking=fatal --enable-fpm --with-pdo-sqlite --without-pear --with-bz2 --with-avif --with-jpeg --with-webp --with-freetype --enable-gd --enable-exif --with-zip --with-zlib --enable-soap --enable-xmlreader --with-xsl --with-libxml --enable-shmop --enable-pcntl --enable-mbstring --with-curl --enable-sockets --with-openssl --with-iconv=/usr/local --enable-bcmath --enable-calendar --enable-ftp --with-kerberos --with-ffi --enable-zend-test --enable-dl-test=shared --enable-intl --with-mhash --with-sodium --enable-werror --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d
17+
- ./configure --prefix=/usr/local --enable-debug --enable-option-checking=fatal --enable-fpm --with-pdo-sqlite --without-pear --with-bz2 --with-avif --with-jpeg --with-webp --with-freetype --enable-gd --enable-exif --with-zip --with-zlib --enable-soap --enable-xmlreader --with-xsl --with-libxml --enable-shmop --enable-pcntl --enable-mbstring --with-curl --enable-sockets --with-openssl --with-iconv=/usr/local --enable-bcmath --enable-calendar --enable-ftp --with-kerberos --with-ffi --enable-zend-test --enable-dl-test=shared --enable-intl --with-mhash --with-sodium --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d
1818
- gmake -j2
1919
- mkdir /etc/php.d
2020
- gmake install

CODEOWNERS renamed to .github/CODEOWNERS

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
# For more information, see the GitHub CODEOWNERS documentation:
99
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
1010

11-
*.stub.php @kocsismate
1211
/.github @iluuu1994 @TimWolla
1312
/build/gen_stub.php @kocsismate
1413
/ext/bcmath @Girgias
@@ -17,19 +16,26 @@
1716
/ext/dba @Girgias
1817
/ext/dom @nielsdos
1918
/ext/ffi @dstogov
19+
/ext/gettext @devnexen
2020
/ext/gmp @Girgias
2121
/ext/imap @Girgias
22+
/ext/intl @devnexen
2223
/ext/json @bukka
2324
/ext/libxml @nielsdos
2425
/ext/mbstring @alexdowad
26+
/ext/odbc @NattyNarwhal
2527
/ext/opcache @dstogov @iluuu1994
2628
/ext/openssl @bukka
29+
/ext/pdo_odbc @NattyNarwhal
30+
/ext/pdo_pgsql @devnexen
2731
/ext/pgsql @devnexen
2832
/ext/random @TimWolla @zeriyoshi
2933
/ext/session @Girgias
3034
/ext/sockets @devnexen
3135
/ext/spl @Girgias
3236
/ext/standard @bukka
37+
/ext/xmlreader @nielsdos
38+
/ext/xsl @nielsdos
3339
/main @bukka
3440
/sapi/fpm @bukka
3541
/Zend @iluuu1994
@@ -53,3 +59,4 @@
5359
/Zend/zend_type*.h @dstogov
5460
/Zend/zend_variables.* @dstogov
5561
/Zend/zend_vm* @dstogov
62+
*.stub.php @kocsismate

.github/actions/brew/action.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ runs:
55
- shell: bash
66
run: |
77
set -x
8+
9+
# Patch brew to overwrite always
10+
formula_installer="$(brew --repo)"/Library/Homebrew/formula_installer.rb
11+
code=" keg.link\(verbose: verbose\?"
12+
sudo sed -Ei '' "s/$code.*/$code, overwrite: true\)/" "$formula_installer"
13+
814
brew install \
915
pkg-config \
1016
autoconf \

.github/actions/test-libmysqlclient/action.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ runs:
1414
export PDO_MYSQL_TEST_HOST=127.0.0.1
1515
export PDO_MYSQL_TEST_USER=root
1616
export PDO_MYSQL_TEST_PASS=root
17-
export REPORT_EXIT_STATUS=no
1817
sapi/cli/php run-tests.php -P -q \
1918
-g FAIL,BORK,LEAK,XLEAK \
2019
--no-progress --offline --show-diff --show-slow 1000 --set-timeout 120 \

.github/workflows/push.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ jobs:
7272
zts: true
7373
asan: true
7474
name: "LINUX_X64_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}${{ matrix.asan && '_ASAN' || '' }}"
75-
runs-on: ubuntu-22.04
75+
runs-on: ubuntu-${{ !matrix.asan && '22' || '20' }}.04
7676
container:
7777
image: ${{ matrix.asan && 'ubuntu:23.04' || null }}
7878
steps:

NEWS

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,72 @@
11
PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3+
11 Apr 2024, PHP 8.3.6
4+
5+
- Core:
6+
. Fixed GH-13569 (GC buffer unnecessarily grows up to GC_MAX_BUF_SIZE when
7+
scanning WeakMaps). (Arnaud)
8+
. Fixed bug GH-13612 (Corrupted memory in destructor with weak references).
9+
(nielsdos)
10+
. Fixed bug GH-13446 (Restore exception handler after it finishes). (ilutov)
11+
. Fixed bug GH-13784 (AX_GCC_FUNC_ATTRIBUTE failure). (Remi)
12+
. Fixed bug GH-13670 (GC does not scale well with a lot of objects created in
13+
destructor). (Arnaud)
14+
15+
- DOM:
16+
. Add some missing ZPP checks. (nielsdos)
17+
. Fix potential memory leak in XPath evaluation results. (nielsdos)
18+
19+
- FPM:
20+
. Fixed GH-11086 (FPM: config test runs twice in daemonised mode).
21+
(Jakub Zelenka)
22+
. Fix incorrect check in fpm_shm_free(). (nielsdos)
23+
24+
- GD:
25+
. Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests). (Michael Orlitzky)
26+
27+
- Gettext:
28+
. Fixed sigabrt raised with dcgettext/dcngettext calls with gettext 0.22.5
29+
with category set to LC_ALL. (David Carlier)
30+
31+
- MySQLnd:
32+
. Fix GH-13452 (Fixed handshake response [mysqlnd]). (Saki Takamachi)
33+
. Fix incorrect charset length in check_mb_eucjpms(). (nielsdos)
34+
35+
- Opcache:
36+
. Fixed GH-13508 (JITed QM_ASSIGN may be optimized out when op1 is null).
37+
(Arnaud, Dmitry)
38+
. Fixed GH-13712 (Segmentation fault for enabled observers when calling trait
39+
method of internal trait when opcache is loaded). (Bob)
40+
41+
- Random:
42+
. Fixed bug GH-13544 (Pre-PHP 8.2 compatibility for mt_srand with unknown
43+
modes). (timwolla)
44+
. Fixed bug GH-13690 (Global Mt19937 is not properly reset in-between
45+
requests when MT_RAND_PHP is used). (timwolla)
46+
47+
- Session:
48+
. Fixed bug GH-13680 (Segfault with session_decode and compilation error).
49+
(nielsdos)
50+
51+
- SPL:
52+
. Fixed bug GH-13685 (Unexpected null pointer in zend_string.h). (nielsdos)
53+
54+
- Standard:
55+
. Fixed bug GH-11808 (Live filesystem modified by tests). (nielsdos)
56+
. Fixed GH-13402 (Added validation of `\n` in $additional_headers of mail()).
57+
(SakiTakamachi)
58+
. Fixed bug GH-13203 (file_put_contents fail on strings over 4GB on Windows).
59+
(divinity76)
60+
. Fixed bug GHSA-pc52-254m-w9w7 (Command injection via array-ish $command
61+
parameter of proc_open). (CVE-2024-1874) (Jakub Zelenka)
62+
. Fixed bug GHSA-wpj3-hf5j-x4v4 (__Host-/__Secure- cookie bypass due to
63+
partial CVE-2022-31629 fix). (CVE-2024-2756) (nielsdos)
64+
. Fixed bug GHSA-h746-cjrr-wfmr (password_verify can erroneously return true,
65+
opening ATO risk). (CVE-2024-3096) (Jakub Zelenka)
66+
. Fixed bug GHSA-fjp9-9hwx-59fq (mb_encode_mimeheader runs endlessly for some
67+
inputs). (CVE-2024-2757) (Alex Dowad)
68+
. Fix bug GH-13932 (Attempt to fix mbstring on windows build) (msvc). (David Carlier)
69+
370
14 Mar 2024, PHP 8.3.4
471

572
- Core:

Zend/tests/gh13446_1.phpt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
--TEST--
2+
GH-13446: Exception handler is restored after is has finished
3+
--FILE--
4+
<?php
5+
function exception_handler($ex) {
6+
echo 'Exception caught: ', $ex->getMessage(), "\n";
7+
}
8+
set_exception_handler('exception_handler');
9+
10+
register_shutdown_function(function () {
11+
echo set_exception_handler(null), "\n";
12+
restore_exception_handler();
13+
});
14+
15+
throw new Exception('Test');
16+
?>
17+
--EXPECT--
18+
Exception caught: Test
19+
exception_handler

Zend/tests/gh13446_2.phpt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
--TEST--
2+
GH-13446: Exception handler attempting to free itself
3+
--FILE--
4+
<?php
5+
$x = new \stdClass();
6+
$handler = function ($ex) use (&$handler, $x) {
7+
$handler = null;
8+
var_dump($x);
9+
};
10+
unset($x);
11+
set_exception_handler($handler);
12+
throw new Exception('Unhandled');
13+
?>
14+
--EXPECT--
15+
object(stdClass)#1 (0) {
16+
}

Zend/tests/gh13446_3.phpt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
--TEST--
2+
GH-13446: Exception handler isn't restored if it is previously modified
3+
--FILE--
4+
<?php
5+
function exception_handler_1($ex) {
6+
echo "Handler 1\n";
7+
set_exception_handler('exception_handler_2');
8+
}
9+
10+
function exception_handler_2($ex) {
11+
echo "Handler 2\n";
12+
}
13+
14+
set_exception_handler('exception_handler_1');
15+
16+
register_shutdown_function(function () {
17+
echo set_exception_handler(null), "\n";
18+
restore_exception_handler();
19+
});
20+
21+
throw new Exception();
22+
?>
23+
--EXPECT--
24+
Handler 1
25+
exception_handler_2

Zend/tests/gh13446_4.phpt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
--TEST--
2+
GH-13446: Exception handler isn't restored if stack is empty
3+
--FILE--
4+
<?php
5+
function exception_handler() {
6+
echo "Handler\n";
7+
restore_exception_handler();
8+
restore_exception_handler();
9+
}
10+
set_exception_handler('exception_handler');
11+
12+
register_shutdown_function(function () {
13+
var_dump(set_exception_handler(null));
14+
restore_exception_handler();
15+
});
16+
17+
throw new Exception();
18+
?>
19+
--EXPECT--
20+
Handler
21+
NULL

0 commit comments

Comments
 (0)