summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend-scanner.l8
-rw-r--r--Zend/zend.c2
2 files changed, 8 insertions, 2 deletions
diff --git a/Zend/zend-scanner.l b/Zend/zend-scanner.l
index a74148fc8c..ba18fbdcc0 100644
--- a/Zend/zend-scanner.l
+++ b/Zend/zend-scanner.l
@@ -167,11 +167,15 @@ ZEND_API void zend_close_file_handle(zend_file_handle *file_handle)
close(file_handle->handle.fd);
break;
case ZEND_HANDLE_FP:
- fclose(file_handle->handle.fp);
+ if (file_handle->handle.fp != stdin) {
+ fclose(file_handle->handle.fp);
+ }
break;
#ifdef ZTS
case ZEND_HANDLE_ISTREAM:
- delete file_handle->handle.is;
+ if (file_handle->handle.is != &cin) {
+ delete file_handle->handle.is;
+ }
break;
#endif
}
diff --git a/Zend/zend.c b/Zend/zend.c
index ef436f8940..f9b0640d09 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -322,8 +322,10 @@ void zenderror(char *error)
ZEND_API void zend_bailout()
{
+ CLS_FETCH();
ELS_FETCH();
+ CG(unclean_shutdown) = 1;
longjmp(EG(bailout), FAILURE);
}