Skip to content

Commit

Permalink
Report parse errors during preloading
Browse files Browse the repository at this point in the history
  • Loading branch information
nikic committed Nov 3, 2020
1 parent 9fd8e00 commit b009573
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 0 deletions.
4 changes: 4 additions & 0 deletions ext/opcache/ZendAccelerator.c
Original file line number Diff line number Diff line change
Expand Up @@ -4480,6 +4480,10 @@ static int accel_preload(const char *config, zend_bool in_child)
destroy_op_array(op_array);
efree_size(op_array, sizeof(zend_op_array));
} else {
if (EG(exception)) {
zend_exception_error(EG(exception), E_ERROR);
}

CG(unclean_shutdown) = 1;
ret = FAILURE;
}
Expand Down
2 changes: 2 additions & 0 deletions ext/opcache/tests/preload_parse_error.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<?php
parse error
16 changes: 16 additions & 0 deletions ext/opcache/tests/preload_parse_error.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
--TEST--
Parse error in preload script
--INI--
opcache.enable=1
opcache.enable_cli=1
opcache.optimization_level=-1
opcache.preload={PWD}/preload_parse_error.inc
--SKIPIF--
<?php
require_once('skipif.inc');
if (PHP_OS_FAMILY == 'Windows') die('skip Preloading is not supported on Windows');
?>
--FILE--
OK
--EXPECTF--
Parse error: syntax error, unexpected identifier "error" in %s on line %d

0 comments on commit b009573

Please sign in to comment.