Skip to content

Commit a1e059a

Browse files
committed
Merge tag 'php-8.4.5' into was-8.4.x
Tag for php-8.4.5
2 parents 06b0248 + 23e05bd commit a1e059a

File tree

152 files changed

+5397
-1630
lines changed

Some content is hidden

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

152 files changed

+5397
-1630
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
@@ -136,6 +136,8 @@ for %%i in (ldap) do (
136136

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

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

141143
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
@@ -290,6 +290,11 @@ tmp-php.ini
290290
/junit.out.xml
291291
/.ccache/
292292

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

NEWS

Lines changed: 119 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,123 @@
11
PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3-
13 Feb 2025, PHP 8.4.4
3+
13 Mar 2025, PHP 8.4.5
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 OSS-Fuzz #391975641 (Crash when accessing property backing value
15+
by reference). (ilutov)
16+
. Fixed bug GH-17718 (Calling static methods on an interface that has
17+
`__callStatic` is allowed). (timwolla)
18+
. Fixed bug GH-17713 (ReflectionProperty::getRawValue() and related methods
19+
may call hooks of overridden properties). (Arnaud)
20+
. Fixed bug GH-17916 (Final abstract properties should error).
21+
(DanielEScherzer)
22+
. Fixed bug GH-17866 (zend_mm_heap corrupted error after upgrading from
23+
8.4.3 to 8.4.4). (nielsdos)
24+
. Fixed GHSA-rwp7-7vc6-8477 (Reference counting in php_request_shutdown
25+
causes Use-After-Free). (CVE-2024-11235) (ilutov)
26+
27+
- DOM:
28+
. Fixed bug GH-17609 (Typo in error message: Dom\NO_DEFAULT_NS instead of
29+
Dom\HTML_NO_DEFAULT_NS). (nielsdos)
30+
. Fixed bug GH-17802 (\Dom\HTMLDocument querySelector attribute name is case
31+
sensitive in HTML). (nielsdos)
32+
. Fixed bug GH-17847 (xinclude destroys live node). (nielsdos)
33+
. Fix using Dom\Node with Dom\XPath callbacks. (nielsdos)
34+
35+
- GD:
36+
. Fixed bug GH-17703 (imagescale with both width and height negative values
37+
triggers only an Exception on width). (David Carlier)
38+
39+
- FFI:
40+
. Fix FFI Parsing of Pointer Declaration Lists. (davnotdev)
41+
42+
- FPM:
43+
. Fixed bug GH-17643 (FPM with httpd ProxyPass encoded PATH_INFO env).
44+
(Jakub Zelenka)
45+
46+
- GD:
47+
. Fixed bug GH-17772 (imagepalettetotruecolor crash with memory_limit=2M).
48+
(David Carlier)
49+
50+
- LDAP:
51+
. Fixed bug GH-17704 (ldap_search fails when $attributes contains a
52+
non-packed array with numerical keys). (nielsdos, 7u83)
53+
54+
- LibXML:
55+
. Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714). (nielsdos)
56+
. Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header
57+
when requesting a redirected resource). (CVE-2025-1219) (timwolla)
58+
59+
- MBString:
60+
. Fixed bug GH-17503 (Undefined float conversion in mb_convert_variables).
61+
(cmb)
62+
63+
- Opcache:
64+
. Fixed bug GH-17654 (Multiple classes using same trait causes function
65+
JIT crash). (nielsdos)
66+
. Fixed bug GH-17577 (JIT packed type guard crash). (nielsdos, Dmitry)
67+
. Fixed bug GH-17747 (Exception on reading property in register-based
68+
FETCH_OBJ_R breaks JIT). (Dmitry, nielsdos)
69+
. Fixed bug GH-17715 (Null pointer deref in observer API when calling
70+
cases() method on preloaded enum). (Bob)
71+
. Fixed bug GH-17868 (Cannot allocate memory with tracing JIT on 8.4.4).
72+
(nielsdos)
73+
74+
- PDO_SQLite:
75+
. Fixed GH-17837 ()::getColumnMeta() on unexecuted statement segfaults).
76+
(cmb)
77+
. Fix cycle leak in sqlite3 setAuthorizer(). (nielsdos)
78+
. Fix memory leaks in pdo_sqlite callback registration. (nielsdos)
79+
80+
- Phar:
81+
. Fixed bug GH-17808: PharFileInfo refcount bug. (nielsdos)
82+
83+
- PHPDBG:
84+
. Partially fixed bug GH-17387 (Trivial crash in phpdbg lexer). (nielsdos)
85+
. Fix memory leak in phpdbg calling registered function. (nielsdos)
86+
87+
- Reflection:
88+
. Fixed bug GH-15902 (Core dumped in ext/reflection/php_reflection.c).
89+
(DanielEScherzer)
90+
. Fixed missing final and abstract flags when dumping properties.
91+
(DanielEScherzer)
92+
93+
- Standard:
94+
. Fixed bug #72666 (stat cache clearing inconsistent between file:// paths
95+
and plain paths). (Jakub Zelenka)
96+
97+
- Streams:
98+
. Fixed bug GH-17650 (realloc with size 0 in user_filters.c). (nielsdos)
99+
. Fix memory leak on overflow in _php_stream_scandir(). (nielsdos)
100+
. Fixed GHSA-hgf54-96fm-v528 (Stream HTTP wrapper header check might omit
101+
basic auth header). (CVE-2025-1736) (Jakub Zelenka)
102+
. Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location
103+
to 1024 bytes). (CVE-2025-1861) (Jakub Zelenka)
104+
. Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers
105+
without colon). (CVE-2025-1734) (Jakub Zelenka)
106+
. Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not
107+
handle folded headers). (CVE-2025-1217) (Jakub Zelenka)
108+
109+
- Windows:
110+
. Fixed phpize for Windows 11 (24H2). (Bob)
111+
. Fixed GH-17855 (CURL_STATICLIB flag set even if linked with shared lib).
112+
(cmb)
113+
114+
- Zlib:
115+
. Fixed bug GH-17745 (zlib extension incorrectly handles object arguments).
116+
(nielsdos)
117+
. Fix memory leak when encoding check fails. (nielsdos)
118+
. Fix zlib support for large files. (nielsdos)
119+
120+
30 Jan 2025, PHP 8.4.4
4121

5122
- Core:
6123
. Fixed bug GH-17234 (Numeric parent hook call fails with assertion).
@@ -57,7 +174,7 @@ PHP NEWS
57174

58175
- Intl:
59176
. Fixed bug GH-11874 (intl causing segfault in docker images). (nielsdos)
60-
177+
61178
- Opcache:
62179
. Fixed bug GH-15981 (Segfault with frameless jumps and minimal JIT).
63180
(nielsdos)

UPGRADING

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,9 @@ PHP 8.4 UPGRADE NOTES
627627
. DOMDocument::registerNodeClass() now has a tentative return type of true.
628628
Previously, the return type was bool but only true could be returned in practice.
629629

630+
- GD:
631+
. imagescale now throws a ValueError when both width and height arguments are negative.
632+
630633
- Hash:
631634
. Changed the return type of hash_update() to true. It was already the case that only
632635
true could be returned, but the stub was not updated yet.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
--TEST--
2+
GH-17866 (zend_mm_heap corrupted error after upgrading from 8.4.3 to 8.4.4)
3+
--FILE--
4+
<?php
5+
6+
class Foo {
7+
#[Deprecated("xyzzy")]
8+
public function __invoke() {
9+
echo "In __invoke\n";
10+
}
11+
}
12+
13+
$foo = new Foo;
14+
$closure = Closure::fromCallable($foo);
15+
$test = $closure->__invoke(...);
16+
17+
$rc = new ReflectionMethod($test, '__invoke');
18+
var_dump($rc->getAttributes());
19+
var_dump($rc->isDeprecated());
20+
21+
$test();
22+
23+
?>
24+
--EXPECTF--
25+
array(1) {
26+
[0]=>
27+
object(ReflectionAttribute)#%d (1) {
28+
["name"]=>
29+
string(10) "Deprecated"
30+
}
31+
}
32+
bool(true)
33+
34+
Deprecated: Method Foo::__invoke() is deprecated, xyzzy in %s on line %d
35+
In __invoke

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

0 commit comments

Comments
 (0)