Skip to content

Commit 315b259

Browse files
committed
Merge tag 'php-8.4.14' into was-8.4.x
Tag for php-8.4.14
2 parents e2f4bd0 + 89010be commit 315b259

File tree

116 files changed

+2422
-616
lines changed

Some content is hidden

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

116 files changed

+2422
-616
lines changed

.gdbinit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ define print_cvs
4242

4343
printf "Compiled variables count: %d\n\n", $cv_count
4444
while $cv_idx < $cv_count
45-
printf "[%d] '%s'\n", $cv_idx, $cv[$cv_idx].val
45+
printf "[%d] '$%s'\n", $cv_idx, $cv[$cv_idx].val@$cv[$cv_idx].len
4646
set $zvalue = ((zval *) $cv_ex_ptr) + $callFrameSize + $cv_idx
4747
printzv $zvalue
4848
set $cv_idx = $cv_idx + 1

.github/actions/apk/action.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ runs:
77
set -x
88
99
OPCACHE_TLS_TESTS_DEPS="clang gcc binutils-gold lld"
10+
# compiler-rt provides libclang_rt.asan-x86_64.a for clang20
11+
# https://pkgs.alpinelinux.org/contents?file=libclang_rt.asan-x86_64.a&path=&name=&branch=v3.22
12+
ASAN_DEPS="clang20 compiler-rt"
1013
1114
apk update -q
1215
apk add \
@@ -52,8 +55,9 @@ runs:
5255
net-snmp-dev \
5356
openldap-dev \
5457
unixodbc-dev \
55-
postgresql14-dev \
58+
postgresql-dev \
5659
tzdata \
5760
musl-locales \
5861
musl-locales-lang \
59-
$OPCACHE_TLS_TESTS_DEPS
62+
$OPCACHE_TLS_TESTS_DEPS \
63+
$ASAN_DEPS

.github/nightly_matrix.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
<?php
22

33
const BRANCHES = [
4-
['ref' => 'master', 'version' => [8, 5]],
4+
['ref' => 'master', 'version' => [8, 6]],
5+
['ref' => 'PHP-8.5', 'version' => [8, 5]],
56
['ref' => 'PHP-8.4', 'version' => [8, 4]],
67
['ref' => 'PHP-8.3', 'version' => [8, 3]],
78
['ref' => 'PHP-8.2', 'version' => [8, 2]],

.github/scripts/windows/find-target-branch.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
for /f "usebackq tokens=3" %%i in (`findstr PHP_MAJOR_VERSION main\php_version.h`) do set BRANCH=%%i
44
for /f "usebackq tokens=3" %%i in (`findstr PHP_MINOR_VERSION main\php_version.h`) do set BRANCH=%BRANCH%.%%i
55

6-
if /i "%BRANCH%" equ "8.5" (
6+
if /i "%BRANCH%" equ "8.6" (
77
set BRANCH=master
88
)

.github/workflows/nightly.yml

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ on:
4444
skip_wordpress:
4545
required: true
4646
type: boolean
47+
variation_enable_zend_max_execution_timers:
48+
required: true
49+
type: boolean
4750
permissions:
4851
contents: read
4952
jobs:
@@ -90,21 +93,16 @@ jobs:
9093
ALPINE:
9194
if: inputs.run_alpine
9295
name: ALPINE_X64_ASAN_UBSAN_DEBUG_ZTS
93-
runs-on: ubuntu-22.04
96+
runs-on: ubuntu-24.04
9497
container:
95-
image: 'alpine:3.20.1'
98+
image: 'alpine:3.22'
9699
steps:
97100
- name: git checkout
98101
uses: actions/checkout@v5
99102
with:
100103
ref: ${{ inputs.branch }}
101104
- name: apk
102105
uses: ./.github/actions/apk
103-
- name: LLVM 17 (ASAN-only)
104-
# libclang_rt.asan-x86_64.a is provided by compiler-rt, and only for clang17:
105-
# https://pkgs.alpinelinux.org/contents?file=libclang_rt.asan-x86_64.a&path=&name=&branch=v3.20
106-
run: |
107-
apk add clang17 compiler-rt
108106
- name: System info
109107
run: |
110108
echo "::group::Show host CPU info"
@@ -119,8 +117,8 @@ jobs:
119117
configurationParameters: >-
120118
CFLAGS="-fsanitize=undefined,address -fno-sanitize=function -DZEND_TRACK_ARENA_ALLOC"
121119
LDFLAGS="-fsanitize=undefined,address -fno-sanitize=function"
122-
CC=clang-17
123-
CXX=clang++-17
120+
CC=clang-20
121+
CXX=clang++-20
124122
--enable-debug
125123
--enable-zts
126124
skipSlow: true # FIXME: This should likely include slow extensions
@@ -199,6 +197,7 @@ jobs:
199197
zts: true
200198
configuration_parameters: >-
201199
CFLAGS="-DZEND_RC_DEBUG=1 -DPROFITABILITY_CHECKS=0 -DZEND_VERIFY_FUNC_INFO=1 -DZEND_VERIFY_TYPE_INFERENCE"
200+
${{ inputs.variation_enable_zend_max_execution_timers && '--enable-zend-max-execution-timers' || '' }}
202201
run_tests_parameters: -d zend_test.observer.enabled=1 -d zend_test.observer.show_output=0
203202
timeout_minutes: 360
204203
test_function_jit: true

.github/workflows/push.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,47 @@ env:
4040
CC: ccache gcc
4141
CXX: ccache g++
4242
jobs:
43+
ALPINE:
44+
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
45+
name: ALPINE_X64_ASAN_UBSAN_DEBUG_ZTS
46+
runs-on: ubuntu-24.04
47+
container:
48+
image: 'alpine:3.22'
49+
steps:
50+
- name: git checkout
51+
uses: actions/checkout@v5
52+
- name: apk
53+
uses: ./.github/actions/apk
54+
- name: System info
55+
run: |
56+
echo "::group::Show host CPU info"
57+
lscpu
58+
echo "::endgroup::"
59+
echo "::group::Show installed package versions"
60+
apk list
61+
echo "::endgroup::"
62+
- name: ./configure
63+
uses: ./.github/actions/configure-alpine
64+
with:
65+
configurationParameters: >-
66+
CFLAGS="-fsanitize=undefined,address -fno-sanitize=function -DZEND_TRACK_ARENA_ALLOC"
67+
LDFLAGS="-fsanitize=undefined,address -fno-sanitize=function"
68+
CC=clang-20
69+
CXX=clang++-20
70+
--enable-debug
71+
--enable-zts
72+
skipSlow: true # FIXME: This should likely include slow extensions
73+
- name: make
74+
run: make -j$(/usr/bin/nproc) >/dev/null
75+
- name: make install
76+
uses: ./.github/actions/install-alpine
77+
- name: Test Tracing JIT
78+
uses: ./.github/actions/test-alpine
79+
with:
80+
jitType: tracing
81+
runTestsParameters: >-
82+
--asan -x
83+
-d opcache.enable_cli=1
4384
LINUX_X64:
4485
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
4586
services:
@@ -163,6 +204,7 @@ jobs:
163204
with:
164205
key: "${{github.job}}-${{hashFiles('main/php_version.h')}}"
165206
append-timestamp: false
207+
save: ${{ github.event_name != 'pull_request' }}
166208
- name: ./configure
167209
uses: ./.github/actions/configure-x32
168210
with:

.github/workflows/root.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,5 @@ jobs:
6464
skip_laravel: ${{ matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1 }}
6565
skip_symfony: ${{ matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1 }}
6666
skip_wordpress: ${{ matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1 }}
67+
variation_enable_zend_max_execution_timers: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 3) || matrix.branch.version[0] >= 9 }}
6768
secrets: inherit

NEWS

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,96 @@
11
PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3+
21 Oct 2025, PHP 8.4.14
4+
5+
- Core:
6+
. Fixed bug GH-19765 (object_properties_load() bypasses readonly property
7+
checks). (timwolla)
8+
. Fixed hard_timeout with --enable-zend-max-execution-timers. (Appla)
9+
. Fixed bug GH-19792 (SCCP causes UAF for return value if both warning and
10+
exception are triggered). (nielsdos)
11+
. Fixed bug GH-19653 (Closure named argument unpacking between temporary
12+
closures can cause a crash). (nielsdos, Arnaud, Bob)
13+
. Fixed bug GH-19839 (Incorrect HASH_FLAG_HAS_EMPTY_IND flag on userland
14+
array). (ilutov)
15+
. Fixed bug GH-19480 (error_log php.ini cannot be unset when open_basedir is
16+
configured). (nielsdos)
17+
. Fixed bug GH-20002 (Broken build on *BSD with MSAN). (outtersg)
18+
19+
- CLI:
20+
. Fix useless "Failed to poll event" error logs due to EAGAIN in CLI server
21+
with PHP_CLI_SERVER_WORKERS. (leotaku)
22+
23+
- Curl:
24+
. Fix cloning of CURLOPT_POSTFIELDS when using the clone operator instead
25+
of the curl_copy_handle() function to clone a CurlHandle. (timwolla)
26+
. Fix curl build and test failures with version 8.16.
27+
(nielsdos, ilutov, Jakub Zelenka)
28+
29+
- Date:
30+
. Fixed GH-17159: "P" format for ::createFromFormat swallows string literals.
31+
(nielsdos)
32+
33+
- DOM:
34+
. Fix macro name clash on macOS. (Ruoyu Zhong)
35+
. Fixed bug GH-20022 (docker-php-ext-install DOM failed). (nielsdos)
36+
37+
- GD:
38+
. Fixed GH-19955 (imagefttext() memory leak). (David Carlier)
39+
40+
- MySQLnd:
41+
. Fixed bug #67563 (mysqli compiled with mysqlnd does not take ipv6 adress
42+
as parameter). (nielsdos)
43+
44+
- Opcache:
45+
. Fixed bug GH-19669 (assertion failure in zend_jit_trace_type_to_info_ex).
46+
(Arnaud)
47+
. Fixed bug GH-19831 (function JIT may not deref property value). (Arnaud)
48+
. Fixed bug GH-19889 (race condition in zend_runtime_jit(),
49+
zend_jit_hot_func()). (Arnaud)
50+
51+
- Phar:
52+
. Fix memory leak and invalid continuation after tar header writing fails.
53+
(nielsdos)
54+
. Fix memory leaks when creating temp file fails when applying zip signature.
55+
(nielsdos)
56+
57+
- SimpleXML:
58+
. Fixed bug GH-19988 (zend_string_init with NULL pointer in simplexml (UB)).
59+
(nielsdos)
60+
61+
- Soap:
62+
. Fixed bug GH-19784 (SoapServer memory leak). (nielsdos)
63+
. Fixed bug GH-20011 (Array of SoapVar of unknown type causes crash).
64+
(nielsdos)
65+
66+
- Standard:
67+
. Fixed bug GH-12265 (Cloning an object breaks serialization recursion).
68+
(nielsdos)
69+
. Fixed bug GH-19701 (Serialize/deserialize loses some data). (nielsdos)
70+
. Fixed bug GH-19801 (leaks in var_dump() and debug_zval_dump()).
71+
(alexandre-daubois)
72+
. Fixed bug GH-20043 (array_unique assertion failure with RC1 array
73+
causing an exception on sort). (nielsdos)
74+
. Fixed bug GH-19926 (reset internal pointer earlier while splicing array
75+
while COW violation flag is still set). (alexandre-daubois)
76+
. Fixed bug GH-19570 (unable to fseek in /dev/zero and /dev/null).
77+
(nielsdos, divinity76)
78+
79+
- Streams:
80+
. Fixed bug GH-19248 (Use strerror_r instead of strerror in main).
81+
(Jakub Zelenka)
82+
. Fixed bug GH-17345 (Bug #35916 was not completely fixed). (nielsdos)
83+
. Fixed bug GH-19705 (segmentation when attempting to flush on non seekable
84+
stream. (bukka/David Carlier)
85+
86+
- XMLReader:
87+
. Fixed bug GH-20009 (XMLReader leak on RelaxNG schema failure). (nielsdos)
88+
89+
- Zip:
90+
. Fixed bug GH-19688 (Remove pattern overflow in zip addGlob()). (nielsdos)
91+
. Fixed bug GH-19932 (Memory leak in zip setEncryptionName()/setEncryptionIndex()).
92+
(David Carlier)
93+
394
25 Sep 2025, PHP 8.4.13
495

596
- Core:

Zend/Optimizer/sccp.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -841,9 +841,7 @@ static inline zend_result ct_eval_func_call_ex(
841841
zval_ptr_dtor(result);
842842
zend_clear_exception();
843843
retval = FAILURE;
844-
}
845-
846-
if (EG(capture_warnings_during_sccp) > 1) {
844+
} else if (EG(capture_warnings_during_sccp) > 1) {
847845
zval_ptr_dtor(result);
848846
retval = FAILURE;
849847
}

Zend/Optimizer/zend_func_info.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
#define ZEND_FUNC_JIT_ON_PROF_REQUEST (1<<14) /* used by JIT */
4040
#define ZEND_FUNC_JIT_ON_HOT_COUNTERS (1<<15) /* used by JIT */
4141
#define ZEND_FUNC_JIT_ON_HOT_TRACE (1<<16) /* used by JIT */
42-
42+
#define ZEND_FUNC_JITED (1<<17) /* used by JIT */
4343

4444
typedef struct _zend_func_info zend_func_info;
4545
typedef struct _zend_call_info zend_call_info;

0 commit comments

Comments
 (0)