summaryrefslogtreecommitdiff
path: root/main/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/main.c')
-rw-r--r--main/main.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/main/main.c b/main/main.c
index bd18864bbe..5c4a5c6f73 100644
--- a/main/main.c
+++ b/main/main.c
@@ -1565,7 +1565,7 @@ PHPAPI int php_execute_script(zend_file_handle *primary_file TSRMLS_DC)
zend_file_handle *prepend_file_p, *append_file_p;
zend_file_handle prepend_file, append_file;
#if HAVE_BROKEN_GETCWD
- int old_cwd_fd;
+ int old_cwd_fd = -1;
#else
char *old_cwd;
#endif
@@ -1649,8 +1649,10 @@ PHPAPI int php_execute_script(zend_file_handle *primary_file TSRMLS_DC)
} zend_end_try();
#if HAVE_BROKEN_GETCWD
- fchdir(old_cwd_fd);
- close(old_cwd_fd);
+ if (old_cwd_fd != -1) {
+ fchdir(old_cwd_fd);
+ close(old_cwd_fd);
+ }
#else
if (old_cwd[0] != '\0') {
VCWD_CHDIR(old_cwd);