Skip to content

Commit eabd68b

Browse files
committed
Merge tag 'php-8.3.18' into was-8.3.x
Tag for php-8.3.18
2 parents f30065e + 58c6519 commit eabd68b

File tree

181 files changed

+2927
-405
lines changed

Some content is hidden

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

181 files changed

+2927
-405
lines changed

.github/scripts/windows/build_task.bat

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,6 @@ if /i "%GITHUB_ACTIONS%" neq "True" (
55
exit /b 3
66
)
77

8-
del /f /q C:\Windows\System32\libcrypto-1_1-x64.dll >NUL 2>NUL
9-
if %errorlevel% neq 0 exit /b 3
10-
del /f /q C:\Windows\System32\libssl-1_1-x64.dll >NUL 2>NUL
11-
if %errorlevel% neq 0 exit /b 3
12-
138
call %~dp0find-target-branch.bat
149
set STABILITY=staging
1510
set DEPS_DIR=%PHP_BUILD_CACHE_BASE_DIR%\deps-%BRANCH%-%PHP_SDK_VS%-%PHP_SDK_ARCH%

.github/scripts/windows/test_task.bat

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,8 @@ for %%i in (ldap oci8_12c pdo_oci) do (
137137

138138
set TEST_PHPDBG_EXECUTABLE=%PHP_BUILD_DIR%\phpdbg.exe
139139

140+
copy /-y %DEPS_DIR%\bin\*.dll %PHP_BUILD_DIR%\*
141+
140142
mkdir c:\tests_tmp
141143

142144
nmake test TESTS="%OPCACHE_OPTS% -g FAIL,BORK,LEAK,XLEAK --no-progress -q --offline --show-diff --show-slow 1000 --set-timeout 120 --temp-source c:\tests_tmp --temp-target c:\tests_tmp --bless %PARALLEL%"

.github/workflows/nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,7 @@ jobs:
520520
- name: Test Laravel
521521
if: ${{ !cancelled() }}
522522
run: |
523-
git clone https://github.com/laravel/framework.git --branch=master --depth=1
523+
git clone https://github.com/laravel/framework.git --depth=1
524524
cd framework
525525
git rev-parse HEAD
526526
php /usr/bin/composer install --no-progress --ignore-platform-reqs
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Windows builds
2+
run-name: Windows builds for ${{ inputs.tag || github.ref_name }}
3+
on:
4+
push:
5+
tags:
6+
- 'php-*'
7+
workflow_dispatch:
8+
inputs:
9+
tag:
10+
description: 'Tag version'
11+
required: true
12+
13+
jobs:
14+
publish:
15+
runs-on: ubuntu-latest
16+
name: Build
17+
steps:
18+
- name: Build
19+
env:
20+
GITHUB_TOKEN: ${{ secrets.WINDOWS_BUILDS_TOKEN }}
21+
run: |
22+
TAG="${{ inputs.tag || github.ref_name }}"
23+
gh workflow run php.yml -R php/php-windows-builder -f php-version="${TAG#php-}"

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,11 @@ tmp-php.ini
291291
/junit.out.xml
292292
/.ccache/
293293

294+
# ------------------------------------------------------------------------------
295+
# Additional test build files
296+
# ------------------------------------------------------------------------------
297+
/ext/standard/tests/helpers/bad_cmd.exe
298+
294299
# ------------------------------------------------------------------------------
295300
# Special cases to invert previous ignore patterns
296301
# ------------------------------------------------------------------------------

NEWS

Lines changed: 100 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,101 @@
11
PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3+
13 Mar 2025, PHP 8.3.18
4+
5+
- BCMath:
6+
. Fixed bug GH-17398 (bcmul memory leak). (SakiTakamachi)
7+
8+
- Core:
9+
. Fixed bug GH-17623 (Broken stack overflow detection for variable
10+
compilation). (ilutov)
11+
. Fixed bug GH-17618 (UnhandledMatchError does not take
12+
zend.exception_ignore_args=1 into account). (timwolla)
13+
. Fix fallback paths in fast_long_{add,sub}_function. (nielsdos)
14+
. Fixed bug GH-17718 (Calling static methods on an interface that has
15+
`__callStatic` is allowed). (timwolla)
16+
. Fixed bug GH-17797 (zend_test_compile_string crash on invalid
17+
script path). (David Carlier)
18+
. Fixed GHSA-rwp7-7vc6-8477 (Reference counting in php_request_shutdown
19+
causes Use-After-Free). (CVE-2024-11235) (ilutov)
20+
21+
- DOM:
22+
. Fixed bug GH-17847 (xinclude destroys live node). (nielsdos)
23+
24+
- FFI:
25+
. Fix FFI Parsing of Pointer Declaration Lists. (davnotdev)
26+
27+
- FPM:
28+
. Fixed bug GH-17643 (FPM with httpd ProxyPass encoded PATH_INFO env).
29+
(Jakub Zelenka)
30+
31+
- GD:
32+
. Fixed bug GH-17772 (imagepalettetotruecolor crash with memory_limit=2M).
33+
(David Carlier)
34+
35+
- LDAP:
36+
. Fixed bug GH-17704 (ldap_search fails when $attributes contains a
37+
non-packed array with numerical keys). (nielsdos, 7u83)
38+
39+
- LibXML:
40+
. Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714). (nielsdos)
41+
. Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header
42+
when requesting a redirected resource). (CVE-2025-1219) (timwolla)
43+
44+
- MBString:
45+
. Fixed bug GH-17503 (Undefined float conversion in mb_convert_variables).
46+
(cmb)
47+
48+
- Opcache:
49+
. Fixed bug GH-17654 (Multiple classes using same trait causes function
50+
JIT crash). (nielsdos)
51+
. Fixed bug GH-17577 (JIT packed type guard crash). (nielsdos, Dmitry)
52+
. Fixed bug GH-17899 (zend_test_compile_string with invalid path
53+
when opcache is enabled). (David Carlier)
54+
. Fixed bug GH-17868 (Cannot allocate memory with tracing JIT). (nielsdos)
55+
56+
- PDO_SQLite:
57+
. Fixed GH-17837 ()::getColumnMeta() on unexecuted statement segfaults).
58+
(cmb)
59+
. Fix cycle leak in sqlite3 setAuthorizer(). (nielsdos)
60+
61+
- Phar:
62+
. Fixed bug GH-17808: PharFileInfo refcount bug. (nielsdos)
63+
64+
- PHPDBG:
65+
. Partially fixed bug GH-17387 (Trivial crash in phpdbg lexer). (nielsdos)
66+
. Fix memory leak in phpdbg calling registered function. (nielsdos)
67+
68+
- Reflection:
69+
. Fixed bug GH-15902 (Core dumped in ext/reflection/php_reflection.c).
70+
(DanielEScherzer)
71+
72+
- Standard:
73+
. Fixed bug #72666 (stat cache clearing inconsistent between file:// paths
74+
and plain paths). (Jakub Zelenka)
75+
76+
- Streams:
77+
. Fixed bug GH-17650 (realloc with size 0 in user_filters.c). (nielsdos)
78+
. Fix memory leak on overflow in _php_stream_scandir(). (nielsdos)
79+
. Fixed GHSA-hgf54-96fm-v528 (Stream HTTP wrapper header check might omit
80+
basic auth header). (CVE-2025-1736) (Jakub Zelenka)
81+
. Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location
82+
to 1024 bytes). (CVE-2025-1861) (Jakub Zelenka)
83+
. Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers
84+
without colon). (CVE-2025-1734) (Jakub Zelenka)
85+
. Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not
86+
handle folded headers). (CVE-2025-1217) (Jakub Zelenka)
87+
88+
- Windows:
89+
. Fixed phpize for Windows 11 (24H2). (bwoebi)
90+
. Fixed GH-17855 (CURL_STATICLIB flag set even if linked with shared lib).
91+
(cmb)
92+
93+
- Zlib:
94+
. Fixed bug GH-17745 (zlib extension incorrectly handles object arguments).
95+
(nielsdos)
96+
. Fix memory leak when encoding check fails. (nielsdos)
97+
. Fix zlib support for large files. (nielsdos)
98+
399
13 Feb 2025, PHP 8.3.17
4100

5101
- Core:
@@ -76,7 +172,7 @@ PHP NEWS
76172
. Fixed bug GH-17139 (Fix zip_entry_name() crash on invalid entry).
77173
(nielsdos)
78174

79-
02 Jan 2025, PHP 8.3.16RC1
175+
02 Jan 2025, PHP 8.3.16
80176

81177
- Core:
82178
. Fixed bug GH-17106 (ZEND_MATCH_ERROR misoptimization). (ilutov)
@@ -275,7 +371,7 @@ PHP NEWS
275371
- Windows:
276372
. Fixed bug GH-16849 (Error dialog causes process to hang). (cmb)
277373

278-
07 Nov 2024, PHP 8.3.14RC1
374+
07 Nov 2024, PHP 8.3.14
279375

280376
- CLI:
281377
. Fixed bug GH-16373 (Shebang is not skipped for router script in cli-server
@@ -1028,7 +1124,7 @@ PHP NEWS
10281124
- Treewide:
10291125
. Fix gcc-14 Wcalloc-transposed-args warnings. (Cristian Rodríguez)
10301126

1031-
28 Mar 2024, PHP 8.3.5RC1
1127+
28 Mar 2024, PHP 8.3.5
10321128

10331129
- Core:
10341130
. Fixed GH-13569 (GC buffer unnecessarily grows up to GC_MAX_BUF_SIZE when
@@ -1297,7 +1393,7 @@ PHP NEWS
12971393
. Fixed bug GH-12980 (tidynode.props.attribute is missing
12981394
"Boolean Attributes" and empty attributes). (nielsdos)
12991395

1300-
07 Dec 2023, PHP 8.3.1RC1
1396+
07 Dec 2023, PHP 8.3.1
13011397

13021398
- Core:
13031399
. Fixed bug GH-12758 / GH-12768 (Invalid opline in OOM handlers within

Zend/tests/gh_17718_001.phpt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
--TEST--
2+
GH-17718: Disallow calling abstract `__callStatic()` trampoline on an interface
3+
--FILE--
4+
<?php
5+
6+
interface Foo {
7+
public static function __callStatic($method, $args);
8+
}
9+
10+
Foo::bar();
11+
12+
?>
13+
--EXPECTF--
14+
Fatal error: Uncaught Error: Cannot call abstract method Foo::bar() in %s:%d
15+
Stack trace:
16+
#0 {main}
17+
thrown in %s on line %d

Zend/tests/gh_17718_002.phpt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
--TEST--
2+
GH-17718: Disallow calling abstract `__callStatic()` trampoline on an abstract class
3+
--FILE--
4+
<?php
5+
6+
abstract class Foo {
7+
abstract public static function __callStatic($method, $args);
8+
}
9+
10+
Foo::bar();
11+
12+
?>
13+
--EXPECTF--
14+
Fatal error: Uncaught Error: Cannot call abstract method Foo::bar() in %s:%d
15+
Stack trace:
16+
#0 {main}
17+
thrown in %s on line %d

Zend/tests/gh_17728.phpt

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
--TEST--
2+
GH-17728: Assertion failure when calling static method of trait with `__callStatic()` with throwing error handler
3+
--FILE--
4+
<?php
5+
6+
set_error_handler(function (int $errno, string $errstr, string $errfile, int $errline) {
7+
throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
8+
});
9+
10+
trait Foo {
11+
public static function __callStatic($method, $args) {
12+
var_dump($method);
13+
}
14+
}
15+
16+
try {
17+
Foo::bar();
18+
} catch (ErrorException $e) {
19+
echo $e->getMessage(), PHP_EOL;
20+
}
21+
22+
?>
23+
--EXPECT--
24+
Calling static trait method Foo::bar is deprecated, it should only be called on a class using the trait
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
--TEST--
2+
GHSA-rwp7-7vc6-8477: Use-after-free for ??= due to incorrect live-range calculation
3+
--FILE--
4+
<?php
5+
6+
class Foo {
7+
public function foo() {
8+
return $this;
9+
}
10+
11+
public function __set($name, $value) {
12+
throw new Exception('Hello');
13+
}
14+
}
15+
16+
$foo = new Foo();
17+
18+
try {
19+
$foo->foo()->baz ??= 1;
20+
} catch (Exception $e) {
21+
echo $e->getMessage();
22+
}
23+
24+
?>
25+
--EXPECT--
26+
Hello

0 commit comments

Comments
 (0)