summaryrefslogtreecommitdiff
path: root/Zend/zend_language_scanner.l
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-12-30 22:47:38 +0100
committerNikita Popov <nikita.ppv@gmail.com>2019-12-30 22:56:42 +0100
commitf77747b06c7623c4f673c75aebbe3372411a4275 (patch)
tree3cc7bba3949818ab66f236111d221926d296d805 /Zend/zend_language_scanner.l
parentd1537e506edb48790c72a93e1d8505ef2c3e4dd3 (diff)
downloadphp-git-f77747b06c7623c4f673c75aebbe3372411a4275.tar.gz
Properly propagate url_stat exceptions during include
Make sure we abort operations early, and that we don't emit additional warnings or errors if an exception has been thrown.
Diffstat (limited to 'Zend/zend_language_scanner.l')
-rw-r--r--Zend/zend_language_scanner.l12
1 files changed, 7 insertions, 5 deletions
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index 7dcb4dfcee..412356cdc1 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -637,11 +637,13 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
zend_save_lexical_state(&original_lex_state);
if (open_file_for_scanning(file_handle)==FAILURE) {
- if (type==ZEND_REQUIRE) {
- zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename);
- zend_bailout();
- } else {
- zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename);
+ if (!EG(exception)) {
+ if (type==ZEND_REQUIRE) {
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename);
+ zend_bailout();
+ } else {
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename);
+ }
}
} else {
op_array = zend_compile(ZEND_USER_FUNCTION);