Skip to content

Commit 31e51d9

Browse files
committed
Merge tag 'php-8.3.7' into was-8.3.x
Tag for php-8.3.7
2 parents 75748c7 + 8830fbd commit 31e51d9

File tree

183 files changed

+1663
-184
lines changed

Some content is hidden

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

183 files changed

+1663
-184
lines changed

.circleci/config.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,8 @@ jobs:
184184
-d opcache.enable_cli=1 \
185185
-d opcache.jit_buffer_size=16M \
186186
-d opcache.jit=tracing \
187+
-d zend_test.observer.enabled=1 \
188+
-d zend_test.observer.show_output=0 \
187189
-P -q -x -j2 \
188190
-g FAIL,BORK,LEAK,XLEAK \
189191
--no-progress \

.github/nightly_matrix.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ function get_matrix_include(array $branches) {
7272
'debug' => true,
7373
'zts' => true,
7474
'configuration_parameters' => "CFLAGS='-DZEND_RC_DEBUG=1 -DPROFITABILITY_CHECKS=0 -DZEND_VERIFY_FUNC_INFO=1'",
75+
'run_tests_parameters' => '-d zend_test.observer.enabled=1 -d zend_test.observer.show_output=0',
7576
'timeout_minutes' => 360,
7677
'test_function_jit' => true,
7778
'asan' => false,

.github/workflows/push.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ env:
4545
CXX: ccache g++
4646
jobs:
4747
LINUX_X64:
48+
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
4849
services:
4950
mysql:
5051
image: mysql:8
@@ -137,6 +138,7 @@ jobs:
137138
if: ${{ !matrix.asan }}
138139
uses: ./.github/actions/verify-generated-files
139140
MACOS_DEBUG_NTS:
141+
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
140142
runs-on: macos-12
141143
steps:
142144
- name: git checkout
@@ -170,6 +172,7 @@ jobs:
170172
- name: Verify generated files are up to date
171173
uses: ./.github/actions/verify-generated-files
172174
WINDOWS:
175+
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
173176
name: WINDOWS_X64_ZTS
174177
runs-on: windows-2019
175178
env:
@@ -196,7 +199,7 @@ jobs:
196199
run: .github/scripts/windows/test.bat
197200
BENCHMARKING:
198201
name: BENCHMARKING
199-
if: github.repository_owner == 'php' || github.event_name == 'pull_request'
202+
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
200203
runs-on: ubuntu-22.04
201204
steps:
202205
- name: git checkout

NEWS

Lines changed: 87 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,90 @@
11
PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3-
11 Apr 2024, PHP 8.3.6
3+
09 May 2024, PHP 8.3.7
4+
5+
- Core:
6+
. Fixed zend_call_stack build with Linux/uclibc-ng without thread support.
7+
(Fabrice Fontaine)
8+
. Fixed bug GH-13772 (Invalid execute_data->opline pointers in observer fcall
9+
handlers when JIT is enabled). (Bob)
10+
. Fixed bug GH-13931 (Applying zero offset to null pointer in
11+
Zend/zend_opcode.c). (nielsdos)
12+
. Fixed bug GH-13942 (Align the behavior of zend-max-execution-timers with
13+
other timeout implementations). (Kévin Dunglas)
14+
. Fixed bug GH-14003 (Broken cleanup of unfinished calls with callable convert
15+
parameters). (ilutov)
16+
. Fixed bug GH-14013 (Erroneous dnl appended in configure). (Peter Kokot)
17+
. Fixed bug GH-10232 (If autoloading occurs during constant resolution
18+
filename and lineno are identified incorrectly). (ranvis)
19+
. Fixed bug GH-13727 (Missing void keyword). (Peter Kokot)
20+
21+
- Fibers:
22+
. Fixed bug GH-13903 (ASAN false positive underflow when executing copy()).
23+
(nielsdos)
24+
25+
- Fileinfo:
26+
. Fixed bug GH-13795 (Test failing in ext/fileinfo/tests/bug78987.phpt on
27+
big-endian PPC). (orlitzky)
28+
29+
- FPM:
30+
. Fixed bug GH-13563 (Setting bool values via env in FPM config fails).
31+
(Jakub Zelenka)
32+
33+
- Intl:
34+
. Fixed build for icu 74 and onwards. (dunglas)
35+
36+
- MySQLnd:
37+
. Fix shift out of bounds on 32-bit non-fast-path platforms. (nielsdos)
38+
39+
- Opcache:
40+
. Fixed bug GH-13433 (Segmentation Fault in zend_class_init_statics when
41+
using opcache.preload). (nielsdos)
42+
. Fixed incorrect assumptions across compilation units for static calls.
43+
(ilutov)
44+
45+
- OpenSSL:
46+
. Fixed bug GH-10495 (feof on OpenSSL stream hangs indefinitely).
47+
(Jakub Zelenka)
48+
49+
- PDO SQLite:
50+
. Fix GH-13984 (Buffer size is now checked before memcmp). (Saki Takamachi)
51+
. Fix GH-13998 (Manage refcount of agg_context->val correctly).
52+
(Saki Takamachi)
53+
54+
- Phar:
55+
. Fixed bug GH-13836 (Renaming a file in a Phar to an already existing
56+
filename causes a NULL pointer dereference). (nielsdos)
57+
. Fixed bug GH-13833 (Applying zero offset to null pointer in zend_hash.c).
58+
(nielsdos)
59+
. Fix potential NULL pointer dereference before calling EVP_SignInit. (icy17)
60+
61+
- PHPDBG:
62+
. Fixed bug GH-13827 (Null pointer access of type 'zval' in phpdbg_frame).
63+
(nielsdos)
64+
65+
- Posix:
66+
. Fix usage of reentrant functions in ext/posix. (Arnaud)
67+
68+
- Session:
69+
. Fixed bug GH-13856 (Member access within null pointer of type 'ps_files' in
70+
ext/session/mod_files.c). (nielsdos)
71+
. Fixed bug GH-13891 (memleak and segfault when using ini_set with
72+
session.trans_sid_hosts). (nielsdos, kamil-tekiela)
73+
. Fixed buffer _read/_write size limit on windows for the file mode. (David Carlier)
74+
75+
- Streams:
76+
. Fixed file_get_contents() on Windows fails with "errno=22 Invalid
77+
argument". (Damian Wójcik)
78+
. Fixed bug GH-13264 (Part 1 - Memory leak on stream filter failure).
79+
(Jakub Zelenka)
80+
. Fixed bug GH-13860 (Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in
81+
ext/openssl/xp_ssl.c - causing use of dead socket). (nielsdos)
82+
. Fixed bug GH-11678 (Build fails on musl 1.2.4 - lfs64). (Arnaud)
83+
84+
- Treewide:
85+
. Fix gcc-14 Wcalloc-transposed-args warnings. (Cristian Rodríguez)
86+
87+
28 Mar 2024, PHP 8.3.5RC1
488

589
- Core:
690
. Fixed GH-13569 (GC buffer unnecessarily grows up to GC_MAX_BUF_SIZE when
@@ -19,7 +103,7 @@ PHP NEWS
19103
- FPM:
20104
. Fixed GH-11086 (FPM: config test runs twice in daemonised mode).
21105
(Jakub Zelenka)
22-
. Fix incorrect check in fpm_shm_free(). (nielsdos)
106+
. Fixed incorrect check in fpm_shm_free(). (nielsdos)
23107

24108
- GD:
25109
. Fixed bug GH-12019 (add GDLIB_CFLAGS in feature tests). (Michael Orlitzky)
@@ -65,7 +149,6 @@ PHP NEWS
65149
opening ATO risk). (CVE-2024-3096) (Jakub Zelenka)
66150
. Fixed bug GHSA-fjp9-9hwx-59fq (mb_encode_mimeheader runs endlessly for some
67151
inputs). (CVE-2024-2757) (Alex Dowad)
68-
. Fix bug GH-13932 (Attempt to fix mbstring on windows build) (msvc). (David Carlier)
69152

70153
14 Mar 2024, PHP 8.3.4
71154

@@ -160,7 +243,7 @@ PHP NEWS
160243
(David Carlier).
161244

162245
- PDO_Firebird:
163-
. Fix GH-13119 (Changed to convert float and double values ​​into strings using
246+
. Fix GH-13119 (Changed to convert float and double values into strings using
164247
`H` format). (SakiTakamachi)
165248

166249
- Phar:

Zend/Optimizer/zend_inference.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5057,6 +5057,9 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
50575057
return 1;
50585058
}
50595059
}
5060+
if (t1 & (MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_REF)) {
5061+
return 1;
5062+
}
50605063
return (t1 & (MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_TRUE|MAY_BE_FALSE|MAY_BE_STRING|MAY_BE_LONG|MAY_BE_DOUBLE)) || opline->op2_type == IS_UNUSED ||
50615064
(t2 & (MAY_BE_UNDEF|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
50625065
case ZEND_ASSIGN_OBJ:

Zend/tests/gh10232.phpt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
--TEST--
2+
GH-10232 (Weird behaviour when a file is autoloaded in assignment of a constant)
3+
--FILE--
4+
<?php
5+
6+
set_include_path('gh10232-nonexistent') or exit(1);
7+
chdir(__DIR__) or exit(1);
8+
9+
spl_autoload_register(function () {
10+
trigger_error(__LINE__);
11+
$ex = new Exception();
12+
echo 'Exception on line ', $ex->getLine(), "\n";
13+
require_once __DIR__ . '/gh10232/constant_def.inc';
14+
}, true);
15+
16+
17+
class ConstantRef
18+
{
19+
public const VALUE = ConstantDef::VALUE;
20+
}
21+
22+
ConstantRef::VALUE;
23+
24+
?>
25+
--EXPECTF--
26+
Notice: 7 in %sgh10232.php on line 7
27+
Exception on line 8
28+
29+
Notice: constant_def.inc in %sconstant_def.inc on line 3
30+
Exception in constant_def.inc on line 4
31+
32+
Notice: required.inc in %srequired.inc on line 3
33+
Exception in required.inc on line 4
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
trigger_error(basename(__FILE__));
4+
$ex = new Exception();
5+
echo 'Exception in ', basename($ex->getFile()), ' on line ', $ex->getLine(), "\n";
6+
7+
require_once 'required.inc'; // The script of the same directory.
8+
9+
class ConstantDef
10+
{
11+
const VALUE = true;
12+
}

Zend/tests/gh10232/required.inc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php
2+
3+
trigger_error(basename(__FILE__));
4+
$ex = new Exception();
5+
echo 'Exception in ', basename($ex->getFile()), ' on line ', $ex->getLine(), "\n";

Zend/tests/gh10346.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Florian Sowade
66
zend_test
77
--INI--
88
zend_test.observer.enabled=1
9+
zend_test.observer.show_output=1
910
zend_test.observer.observe_all=1
1011
--FILE--
1112
<?php

Zend/tests/gh13931.phpt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
--TEST--
2+
GH-13931 (Applying zero offset to null pointer in Zend/zend_opcode.c)
3+
--FILE--
4+
<?php
5+
6+
register_shutdown_function(function() {
7+
var_dump(eval("return 1+3;"));
8+
});
9+
10+
eval(<<<EVAL
11+
function foo () {
12+
try {
13+
break;
14+
} finally {
15+
}
16+
}
17+
foo();
18+
EVAL);
19+
20+
?>
21+
--EXPECTF--
22+
Fatal error: 'break' not in the 'loop' or 'switch' context in %s on line %d
23+
int(4)

0 commit comments

Comments
 (0)