@@ -1677,11 +1677,13 @@ static zend_persistent_script *opcache_compile_file(zend_file_handle *file_handl
16771677 if (file_handle -> type == ZEND_HANDLE_FILENAME ) {
16781678 if (accelerator_orig_zend_stream_open_function (file_handle -> filename , file_handle ) != SUCCESS ) {
16791679 * op_array_p = NULL ;
1680- if (type == ZEND_REQUIRE ) {
1681- zend_message_dispatcher (ZMSG_FAILED_REQUIRE_FOPEN , file_handle -> filename );
1682- zend_bailout ();
1683- } else {
1684- zend_message_dispatcher (ZMSG_FAILED_INCLUDE_FOPEN , file_handle -> filename );
1680+ if (!EG (exception )) {
1681+ if (type == ZEND_REQUIRE ) {
1682+ zend_message_dispatcher (ZMSG_FAILED_REQUIRE_FOPEN , file_handle -> filename );
1683+ zend_bailout ();
1684+ } else {
1685+ zend_message_dispatcher (ZMSG_FAILED_INCLUDE_FOPEN , file_handle -> filename );
1686+ }
16851687 }
16861688 return NULL ;
16871689 }
@@ -1825,11 +1827,13 @@ zend_op_array *file_cache_compile_file(zend_file_handle *file_handle, int type)
18251827 if (!file_handle -> opened_path ) {
18261828 if (file_handle -> type == ZEND_HANDLE_FILENAME &&
18271829 accelerator_orig_zend_stream_open_function (file_handle -> filename , file_handle ) == FAILURE ) {
1828- if (type == ZEND_REQUIRE ) {
1829- zend_message_dispatcher (ZMSG_FAILED_REQUIRE_FOPEN , file_handle -> filename );
1830- zend_bailout ();
1831- } else {
1832- zend_message_dispatcher (ZMSG_FAILED_INCLUDE_FOPEN , file_handle -> filename );
1830+ if (!EG (exception )) {
1831+ if (type == ZEND_REQUIRE ) {
1832+ zend_message_dispatcher (ZMSG_FAILED_REQUIRE_FOPEN , file_handle -> filename );
1833+ zend_bailout ();
1834+ } else {
1835+ zend_message_dispatcher (ZMSG_FAILED_INCLUDE_FOPEN , file_handle -> filename );
1836+ }
18331837 }
18341838 return NULL ;
18351839 }
@@ -1979,11 +1983,13 @@ zend_op_array *persistent_compile_file(zend_file_handle *file_handle, int type)
19791983 /* open file to resolve the path */
19801984 if (file_handle -> type == ZEND_HANDLE_FILENAME &&
19811985 accelerator_orig_zend_stream_open_function (file_handle -> filename , file_handle ) == FAILURE ) {
1982- if (type == ZEND_REQUIRE ) {
1983- zend_message_dispatcher (ZMSG_FAILED_REQUIRE_FOPEN , file_handle -> filename );
1984- zend_bailout ();
1985- } else {
1986- zend_message_dispatcher (ZMSG_FAILED_INCLUDE_FOPEN , file_handle -> filename );
1986+ if (!EG (exception )) {
1987+ if (type == ZEND_REQUIRE ) {
1988+ zend_message_dispatcher (ZMSG_FAILED_REQUIRE_FOPEN , file_handle -> filename );
1989+ zend_bailout ();
1990+ } else {
1991+ zend_message_dispatcher (ZMSG_FAILED_INCLUDE_FOPEN , file_handle -> filename );
1992+ }
19871993 }
19881994 return NULL ;
19891995 }
@@ -2035,11 +2041,13 @@ zend_op_array *persistent_compile_file(zend_file_handle *file_handle, int type)
20352041 UNEXPECTED (ZCG (accel_directives ).validate_permission ) &&
20362042 file_handle -> type == ZEND_HANDLE_FILENAME &&
20372043 UNEXPECTED (check_persistent_script_access (persistent_script ))) {
2038- if (type == ZEND_REQUIRE ) {
2039- zend_message_dispatcher (ZMSG_FAILED_REQUIRE_FOPEN , file_handle -> filename );
2040- zend_bailout ();
2041- } else {
2042- zend_message_dispatcher (ZMSG_FAILED_INCLUDE_FOPEN , file_handle -> filename );
2044+ if (!EG (exception )) {
2045+ if (type == ZEND_REQUIRE ) {
2046+ zend_message_dispatcher (ZMSG_FAILED_REQUIRE_FOPEN , file_handle -> filename );
2047+ zend_bailout ();
2048+ } else {
2049+ zend_message_dispatcher (ZMSG_FAILED_INCLUDE_FOPEN , file_handle -> filename );
2050+ }
20432051 }
20442052 return NULL ;
20452053 }
0 commit comments