diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-12-30 22:47:38 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-12-30 22:56:42 +0100 |
commit | f77747b06c7623c4f673c75aebbe3372411a4275 (patch) | |
tree | 3cc7bba3949818ab66f236111d221926d296d805 /Zend/zend_language_scanner.l | |
parent | d1537e506edb48790c72a93e1d8505ef2c3e4dd3 (diff) | |
download | php-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.l | 12 |
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); |