Skip to content

Commit 84d2b0b

Browse files
committed
Merge tag 'php-8.3.26' into was-8.3.x
Tag for php-8.3.26
2 parents fbb2e83 + 7791bc6 commit 84d2b0b

File tree

71 files changed

+1133
-92
lines changed

Some content is hidden

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

71 files changed

+1133
-92
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/krb5/lib/pkgconfig"
1717
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/libffi/lib/pkgconfig"

.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
@@ -77,7 +77,7 @@ jobs:
7777
runs-on: ubuntu-${{ !matrix.asan && '22' || '24' }}.04
7878
steps:
7979
- name: git checkout
80-
uses: actions/checkout@v4
80+
uses: actions/checkout@v5
8181
- name: apt
8282
uses: ./.github/actions/apt-x64
8383
- name: System info
@@ -154,7 +154,7 @@ jobs:
154154
MYSQL_ROOT_PASSWORD: root
155155
steps:
156156
- name: git checkout
157-
uses: actions/checkout@v4
157+
uses: actions/checkout@v5
158158
- name: apt
159159
uses: ./.github/actions/apt-x32
160160
- name: ccache
@@ -184,7 +184,7 @@ jobs:
184184
runs-on: macos-14
185185
steps:
186186
- name: git checkout
187-
uses: actions/checkout@v4
187+
uses: actions/checkout@v5
188188
- name: brew
189189
uses: ./.github/actions/brew
190190
- name: ccache
@@ -232,7 +232,7 @@ jobs:
232232
- name: git config
233233
run: git config --global core.autocrlf false && git config --global core.eol lf
234234
- name: git checkout
235-
uses: actions/checkout@v4
235+
uses: actions/checkout@v5
236236
- name: Setup
237237
uses: ./.github/actions/setup-windows
238238
- name: Build
@@ -245,7 +245,7 @@ jobs:
245245
runs-on: ubuntu-22.04
246246
steps:
247247
- name: git checkout
248-
uses: actions/checkout@v4
248+
uses: actions/checkout@v5
249249
with:
250250
fetch-depth: 0
251251
- name: apt
@@ -305,7 +305,7 @@ jobs:
305305
mysql -uroot -proot -e "CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'wordpress'; FLUSH PRIVILEGES;"
306306
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON *.* TO 'wordpress'@'localhost' WITH GRANT OPTION;"
307307
- name: git checkout benchmarking-data
308-
uses: actions/checkout@v4
308+
uses: actions/checkout@v5
309309
with:
310310
repository: php/benchmarking-data
311311
ssh-key: ${{ secrets.BENCHMARKING_DATA_DEPLOY_KEY }}
@@ -343,6 +343,6 @@ jobs:
343343
timeout-minutes: 50
344344
steps:
345345
- name: git checkout
346-
uses: actions/checkout@v4
346+
uses: actions/checkout@v5
347347
- name: FreeBSD
348348
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: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,76 @@
11
PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3+
25 Sep 2025, PHP 8.3.26
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+
- DOM:
27+
. Fixed bug GH-19612 (Mitigate libxml2 tree dictionary bug). (nielsdos)
28+
29+
- FPM:
30+
. Fixed failed debug assertion when php_admin_value setting fails. (ilutov)
31+
32+
- GD:
33+
. Fixed bug GH-19579 (imagefilledellipse underflow on width argument).
34+
(David Carlier)
35+
36+
- Intl:
37+
. Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter
38+
and NumberFormatter). (alexandre-daubois)
39+
40+
- OpenSSL:
41+
. Fixed bug GH-19245 (Success error message on TLS stream accept failure).
42+
(Jakub Zelenka)
43+
44+
- PGSQL:
45+
. Fixed bug GH-19485 (potential use after free when using persistent pgsql
46+
connections). (Mark Karpeles)
47+
48+
- Phar:
49+
. Fixed memory leaks when verifying OpenSSL signature. (Girgias)
50+
. Fix memory leak in phar tar temporary file error handling code. (nielsdos)
51+
. Fix metadata leak when phar convert logic fails. (nielsdos)
52+
. Fix memory leak on failure in phar_convert_to_other(). (nielsdos)
53+
. Fixed bug GH-19752 (Phar decompression with invalid extension
54+
can cause UAF). (nielsdos)
55+
56+
- Standard:
57+
. Fixed bug GH-16649 (UAF during array_splice). (alexandre-daubois)
58+
. Fixed bug GH-19577 (Avoid integer overflow when using a small offset
59+
and PHP_INT_MAX with LimitIterator). (alexandre-daubois)
60+
61+
- Streams:
62+
. Remove incorrect call to zval_ptr_dtor() in user_wrapper_metadata().
63+
(nielsdos)
64+
. Fix OSS-Fuzz #385993744. (nielsdos)
65+
66+
- Tidy:
67+
. Fixed GH-19021 build issue with libtidy in regard of tidyOptIsReadonly
68+
deprecation and TidyInternalCategory being available later than
69+
tidyOptGetCategory. (arjendekorte)
70+
71+
- Zip:
72+
. Fix memory leak in zip when encountering empty glob result. (nielsdos)
73+
374
28 Aug 2025, PHP 8.3.25
475

576
- Core:

Zend/Optimizer/zend_inference.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1635,12 +1635,16 @@ static bool zend_inference_widening_meet(zend_ssa_var_info *var_info, zend_ssa_r
16351635
r->min < var_info->range.min) {
16361636
r->underflow = 1;
16371637
r->min = ZEND_LONG_MIN;
1638+
} else {
1639+
r->min = var_info->range.min;
16381640
}
16391641
if (r->overflow ||
16401642
var_info->range.overflow ||
16411643
r->max > var_info->range.max) {
16421644
r->overflow = 1;
16431645
r->max = ZEND_LONG_MAX;
1646+
} else {
1647+
r->max = var_info->range.max;
16441648
}
16451649
if (var_info->range.min == r->min &&
16461650
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==

Zend/tests/gh19543-002.phpt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
--TEST--
2+
GH-19543 002: 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+
$e2 = $e;
13+
unset($e2); // add to roots
14+
gc_collect_cycles();
15+
16+
?>
17+
==DONE==
18+
--EXPECT--
19+
==DONE==

0 commit comments

Comments
 (0)