File tree 3 files changed +42
-1
lines changed
3 files changed +42
-1
lines changed Original file line number Diff line number Diff line change @@ -42,6 +42,8 @@ PHP NEWS
42
42
. Fixed bug GH-17654 (Multiple classes using same trait causes function
43
43
JIT crash). (nielsdos)
44
44
. Fixed bug GH-17577 (JIT packed type guard crash). (nielsdos, Dmitry)
45
+ . Fixed bug GH-17899 (zend_test_compile_string with invalid path
46
+ when opcache is enabled). (David Carlier)
45
47
46
48
- PDO_SQLite:
47
49
. Fixed GH-17837 ()::getColumnMeta() on unexecuted statement segfaults).
Original file line number Diff line number Diff line change @@ -1334,7 +1334,12 @@ zend_string *accel_make_persistent_key(zend_string *str)
1334
1334
EXPECTED ((parent_script = zend_get_executed_filename_ex ()) != NULL )) {
1335
1335
1336
1336
parent_script_len = ZSTR_LEN (parent_script );
1337
- while ((-- parent_script_len > 0 ) && !IS_SLASH (ZSTR_VAL (parent_script )[parent_script_len ]));
1337
+ while (parent_script_len > 0 ) {
1338
+ -- parent_script_len ;
1339
+ if (IS_SLASH (ZSTR_VAL (parent_script )[parent_script_len ])) {
1340
+ break ;
1341
+ }
1342
+ }
1338
1343
1339
1344
if (UNEXPECTED ((size_t )(key_length + parent_script_len + 1 ) >= ZCG_KEY_LEN )) {
1340
1345
return NULL ;
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ GH-17899 (zend_test_compile_string with opcache crash on invalid script path)
3
+ --EXTENSIONS--
4
+ zend_test
5
+ --INI--
6
+ opcache.enable_cli=1
7
+ --CREDITS--
8
+ YuanchengJiang
9
+ --FILE--
10
+ <?php
11
+ $ source = '<?php
12
+ require("sumfile.php");
13
+ ?> ' ;
14
+ try {zend_test_compile_string ($ source ,$ source ,$ c );} catch (Exception $ e ) { echo ($ e ); }
15
+ --EXPECTF --
16
+
17
+ Warning: Undefined variable $ c in %s on line %d
18
+
19
+ Deprecated: zend_test_compile_string(): Passing null to parameter #3 ($position) of type int is deprecated in %s on line %d
20
+
21
+ Warning: require (sumfile.php): Failed to open stream: No such file or directory in <?php
22
+ require ("sumfile.php " );
23
+ ?> on line %d
24
+
25
+ Fatal error: Uncaught Error: Failed opening required 'sumfile.php' (include_path='.%s') in <?php
26
+ require ("sumfile.php " );
27
+ ?> :%d
28
+ Stack trace:
29
+ #0 %s(%d): zend_test_compile_string('<?php \nrequire("...', '<?php \nrequire( " .. .', NULL)
30
+ #1 {main}
31
+ thrown in <?php
32
+ require("sumfile.php");
33
+ ?> on line %d
34
+
You can’t perform that action at this time.
0 commit comments