Skip to content

Commit 8441ab3

Browse files
committed
Merge tag 'php-8.4.13' into was-8.4.x
Tag for php-8.4.13
2 parents 0d7d63a + 8bcf8ae commit 8441ab3

File tree

163 files changed

+306617
-192027
lines changed

Some content is hidden

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

163 files changed

+306617
-192027
lines changed

.github/actions/configure-macos/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ runs:
1111
set -x
1212
BREW_OPT="$(brew --prefix)"/opt
1313
export PATH="$BREW_OPT/bison/bin:$PATH"
14-
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/openssl@1.1/lib/pkgconfig"
14+
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/openssl/lib/pkgconfig"
1515
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/curl/lib/pkgconfig"
1616
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/libffi/lib/pkgconfig"
1717
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/libxml2/lib/pkgconfig"

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
if: github.repository == 'php/php-src'
1818
steps:
1919
- name: git checkout
20-
uses: actions/checkout@v4
20+
uses: actions/checkout@v5
2121
- name: Install dependencies
2222
run: pip install sphinx-design sphinxawesome-theme rstfmt
2323
- name: Check formatting

.github/workflows/nightly.yml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
runs-on: [self-hosted, gentoo, ppc64]
5555
steps:
5656
- name: git checkout
57-
uses: actions/checkout@v4
57+
uses: actions/checkout@v5
5858
with:
5959
ref: ${{ inputs.branch }}
6060
- name: System info
@@ -95,7 +95,7 @@ jobs:
9595
image: 'alpine:3.20.1'
9696
steps:
9797
- name: git checkout
98-
uses: actions/checkout@v4
98+
uses: actions/checkout@v5
9999
with:
100100
ref: ${{ inputs.branch }}
101101
- name: apk
@@ -207,7 +207,7 @@ jobs:
207207
runs-on: ubuntu-${{ matrix.asan && inputs.asan_ubuntu_version || inputs.ubuntu_version }}
208208
steps:
209209
- name: git checkout
210-
uses: actions/checkout@v4
210+
uses: actions/checkout@v5
211211
with:
212212
ref: ${{ inputs.branch }}
213213
- name: Create MSSQL container
@@ -310,7 +310,7 @@ jobs:
310310
FIREBIRD_PASSWORD: test
311311
steps:
312312
- name: git checkout
313-
uses: actions/checkout@v4
313+
uses: actions/checkout@v5
314314
with:
315315
ref: ${{ inputs.branch }}
316316
- name: apt
@@ -381,7 +381,7 @@ jobs:
381381
runs-on: macos-${{ matrix.os }}
382382
steps:
383383
- name: git checkout
384-
uses: actions/checkout@v4
384+
uses: actions/checkout@v5
385385
with:
386386
ref: ${{ inputs.branch }}
387387
- name: brew
@@ -459,7 +459,7 @@ jobs:
459459
runs-on: ubuntu-22.04
460460
steps:
461461
- name: git checkout
462-
uses: actions/checkout@v4
462+
uses: actions/checkout@v5
463463
with:
464464
ref: ${{ inputs.branch }}
465465
- name: Create MSSQL container
@@ -513,7 +513,7 @@ jobs:
513513
USE_TRACKED_ALLOC: 1
514514
steps:
515515
- name: git checkout
516-
uses: actions/checkout@v4
516+
uses: actions/checkout@v5
517517
with:
518518
ref: ${{ inputs.branch }}
519519
- name: apt
@@ -717,7 +717,7 @@ jobs:
717717
runs-on: ubuntu-${{ inputs.ubuntu_version }}
718718
steps:
719719
- name: git checkout
720-
uses: actions/checkout@v4
720+
uses: actions/checkout@v5
721721
with:
722722
ref: ${{ inputs.branch }}
723723
- name: Create MSSQL container
@@ -785,7 +785,7 @@ jobs:
785785
runs-on: ubuntu-${{ inputs.ubuntu_version }}
786786
steps:
787787
- name: git checkout
788-
uses: actions/checkout@v4
788+
uses: actions/checkout@v5
789789
with:
790790
ref: ${{ inputs.branch }}
791791
- name: apt
@@ -877,7 +877,7 @@ jobs:
877877
runs-on: ubuntu-${{ inputs.ubuntu_version }}
878878
steps:
879879
- name: git checkout
880-
uses: actions/checkout@v4
880+
uses: actions/checkout@v5
881881
with:
882882
ref: ${{ inputs.branch }}
883883
- name: apt
@@ -927,38 +927,38 @@ jobs:
927927
CXX: ccache g++
928928
steps:
929929
- name: git checkout PHP
930-
uses: actions/checkout@v4
930+
uses: actions/checkout@v5
931931
with:
932932
path: php
933933
ref: ${{ inputs.branch }}
934934
- name: git checkout apcu
935-
uses: actions/checkout@v4
935+
uses: actions/checkout@v5
936936
with:
937937
repository: krakjoe/apcu
938938
path: apcu
939939
- name: git checkout imagick
940-
uses: actions/checkout@v4
940+
uses: actions/checkout@v5
941941
with:
942942
repository: Imagick/imagick
943943
path: imagick
944944
- name: git checkout memcached
945-
uses: actions/checkout@v4
945+
uses: actions/checkout@v5
946946
with:
947947
repository: php-memcached-dev/php-memcached
948948
path: memcached
949949
- name: git checkout redis
950-
uses: actions/checkout@v4
950+
uses: actions/checkout@v5
951951
with:
952952
repository: phpredis/phpredis
953953
path: redis
954954
- name: git checkout xdebug
955955
if: false
956-
uses: actions/checkout@v4
956+
uses: actions/checkout@v5
957957
with:
958958
repository: xdebug/xdebug
959959
path: xdebug
960960
- name: git checkout yaml
961-
uses: actions/checkout@v4
961+
uses: actions/checkout@v5
962962
with:
963963
repository: php/pecl-file_formats-yaml
964964
path: yaml
@@ -1068,7 +1068,7 @@ jobs:
10681068
- name: git config
10691069
run: git config --global core.autocrlf false && git config --global core.eol lf
10701070
- name: git checkout
1071-
uses: actions/checkout@v4
1071+
uses: actions/checkout@v5
10721072
with:
10731073
ref: ${{ inputs.branch }}
10741074
- name: Setup
@@ -1089,7 +1089,7 @@ jobs:
10891089
timeout-minutes: 50
10901090
steps:
10911091
- name: git checkout
1092-
uses: actions/checkout@v4
1092+
uses: actions/checkout@v5
10931093
with:
10941094
ref: ${{ inputs.branch }}
10951095
- name: FreeBSD

.github/workflows/push.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ jobs:
8181
runs-on: ubuntu-${{ !matrix.asan && '22' || '24' }}.04
8282
steps:
8383
- name: git checkout
84-
uses: actions/checkout@v4
84+
uses: actions/checkout@v5
8585
- name: apt
8686
uses: ./.github/actions/apt-x64
8787
- name: System info
@@ -155,7 +155,7 @@ jobs:
155155
MYSQL_ROOT_PASSWORD: root
156156
steps:
157157
- name: git checkout
158-
uses: actions/checkout@v4
158+
uses: actions/checkout@v5
159159
- name: apt
160160
uses: ./.github/actions/apt-x32
161161
- name: ccache
@@ -192,7 +192,7 @@ jobs:
192192
runs-on: macos-${{ matrix.os }}
193193
steps:
194194
- name: git checkout
195-
uses: actions/checkout@v4
195+
uses: actions/checkout@v5
196196
- name: brew
197197
uses: ./.github/actions/brew
198198
- name: ccache
@@ -239,7 +239,7 @@ jobs:
239239
- name: git config
240240
run: git config --global core.autocrlf false && git config --global core.eol lf
241241
- name: git checkout
242-
uses: actions/checkout@v4
242+
uses: actions/checkout@v5
243243
- name: Setup
244244
uses: ./.github/actions/setup-windows
245245
- name: Build
@@ -252,7 +252,7 @@ jobs:
252252
runs-on: ubuntu-22.04
253253
steps:
254254
- name: git checkout
255-
uses: actions/checkout@v4
255+
uses: actions/checkout@v5
256256
with:
257257
fetch-depth: 0
258258
# ASLR can cause a lot of noise due to missed sse opportunities for memcpy
@@ -316,7 +316,7 @@ jobs:
316316
mysql -uroot -proot -e "CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'wordpress'; FLUSH PRIVILEGES;"
317317
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON *.* TO 'wordpress'@'localhost' WITH GRANT OPTION;"
318318
- name: git checkout benchmarking-data
319-
uses: actions/checkout@v4
319+
uses: actions/checkout@v5
320320
with:
321321
repository: php/benchmarking-data
322322
ssh-key: ${{ secrets.BENCHMARKING_DATA_DEPLOY_KEY }}
@@ -359,6 +359,6 @@ jobs:
359359
timeout-minutes: 50
360360
steps:
361361
- name: git checkout
362-
uses: actions/checkout@v4
362+
uses: actions/checkout@v5
363363
- name: FreeBSD
364364
uses: ./.github/actions/freebsd

.github/workflows/root.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
outputs:
1414
branches: ${{ steps.set-matrix.outputs.branches }}
1515
steps:
16-
- uses: actions/checkout@v4
16+
- uses: actions/checkout@v5
1717
with:
1818
# Set fetch-depth to 0 to clone the full repository
1919
# including all branches. This is required to find

NEWS

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,73 @@
11
PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3+
25 Sep 2025, PHP 8.4.13
4+
5+
- Core:
6+
. Fixed bug GH-18850 (Repeated inclusion of file with __halt_compiler()
7+
triggers "Constant already defined" warning). (ilutov)
8+
. Partially fixed bug GH-19542 (Scanning of string literals >=2GB will fail
9+
due to signed int overflow). (ilutov)
10+
. Fixed bug GH-19544 (GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap
11+
references). (Arnaud, timwolla)
12+
. Fixed bug GH-19613 (Stale array iterator pointer). (ilutov)
13+
. Fixed bug GH-19679 (zend_ssa_range_widening may fail to converge). (Arnaud)
14+
. Fixed bug GH-19681 (PHP_EXPAND_PATH broken with bash 5.3.0). (Remi)
15+
. Fixed bug GH-19720 (Assertion failure when error handler throws when
16+
accessing a deprecated constant). (nielsdos)
17+
18+
- CLI:
19+
. Fixed bug GH-19461 (Improve error message on listening error with IPv6
20+
address). (alexandre-daubois)
21+
22+
- Date:
23+
. Fixed date_sunrise() and date_sunset() with partial-hour UTC offset.
24+
(ilutov)
25+
26+
- DBA:
27+
. Fixed bug GH-19706 (dba stream resource mismanagement). (nielsdos)
28+
29+
- DOM:
30+
. Fixed bug GH-19612 (Mitigate libxml2 tree dictionary bug). (nielsdos)
31+
32+
- FPM:
33+
. Fixed failed debug assertion when php_admin_value setting fails. (ilutov)
34+
35+
- Intl:
36+
. Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter
37+
and NumberFormatter). (alexandre-daubois)
38+
39+
- Opcache:
40+
. Fixed bug GH-19493 (JIT variable not stored before YIELD). (Arnaud)
41+
42+
- OpenSSL:
43+
. Fixed bug GH-19245 (Success error message on TLS stream accept failure).
44+
(Jakub Zelenka)
45+
46+
- PGSQL:
47+
. Fixed bug GH-19485 (potential use after free when using persistent pgsql
48+
connections). (Mark Karpeles)
49+
50+
- Phar:
51+
. Fixed memory leaks when verifying OpenSSL signature. (Girgias)
52+
. Fix memory leak in phar tar temporary file error handling code. (nielsdos)
53+
. Fix metadata leak when phar convert logic fails. (nielsdos)
54+
. Fix memory leak on failure in phar_convert_to_other(). (nielsdos)
55+
. Fixed bug GH-19752 (Phar decompression with invalid extension
56+
can cause UAF). (nielsdos)
57+
58+
- Standard:
59+
. Fixed bug GH-16649 (UAF during array_splice). (alexandre-daubois)
60+
. Fixed bug GH-19577 (Avoid integer overflow when using a small offset
61+
and PHP_INT_MAX with LimitIterator). (alexandre-daubois)
62+
63+
- Streams:
64+
. Remove incorrect call to zval_ptr_dtor() in user_wrapper_metadata().
65+
(nielsdos)
66+
. Fix OSS-Fuzz #385993744. (nielsdos)
67+
68+
- Zip:
69+
. Fix memory leak in zip when encountering empty glob result. (nielsdos)
70+
371
28 Aug 2025, PHP 8.4.12
472

573
- Core:

Zend/Optimizer/zend_inference.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1625,12 +1625,16 @@ static bool zend_inference_widening_meet(zend_ssa_var_info *var_info, zend_ssa_r
16251625
r->min < var_info->range.min) {
16261626
r->underflow = 1;
16271627
r->min = ZEND_LONG_MIN;
1628+
} else {
1629+
r->min = var_info->range.min;
16281630
}
16291631
if (r->overflow ||
16301632
var_info->range.overflow ||
16311633
r->max > var_info->range.max) {
16321634
r->overflow = 1;
16331635
r->max = ZEND_LONG_MAX;
1636+
} else {
1637+
r->max = var_info->range.max;
16341638
}
16351639
if (var_info->range.min == r->min &&
16361640
var_info->range.max == r->max &&

Zend/tests/constants/gh18850.inc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php
2+
3+
var_dump(__COMPILER_HALT_OFFSET__);
4+
5+
__halt_compiler();

Zend/tests/constants/gh18850.phpt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
--TEST--
2+
GH-18850: Repeated inclusion of file with __halt_compiler() triggers "Constant already defined" warning
3+
--FILE--
4+
<?php
5+
6+
require __DIR__ . '/gh18850.inc';
7+
require __DIR__ . '/gh18850.inc';
8+
9+
?>
10+
--EXPECT--
11+
int(62)
12+
int(62)

Zend/tests/gh19543-001.phpt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
--TEST--
2+
GH-19543 001: GC treats ZEND_WEAKREF_TAG_MAP references as WeakMap references
3+
--EXTENSIONS--
4+
zend_test
5+
--FILE--
6+
<?php
7+
8+
$e = new Exception();
9+
$a = new stdClass();
10+
zend_weakmap_attach($e, $a);
11+
unset($a);
12+
gc_collect_cycles();
13+
14+
?>
15+
==DONE==
16+
--EXPECT--
17+
==DONE==

0 commit comments

Comments
 (0)