From: Dmitry Stogov Date: Fri, 10 Nov 2006 10:55:43 +0000 (+0000) Subject: Removed unnecessary checks for ISREG file and corresponding stat() calls on Wind X-Git-Tag: RELEASE_1_0_0RC1~1078 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b71309f4a2a6058225fdc0e1cc83c0104f02d4e9;p=php Removed unnecessary checks for ISREG file and corresponding stat() calls on Wind ows --- diff --git a/main/fopen_wrappers.c b/main/fopen_wrappers.c index b4f302d838..6e94fa2de8 100644 --- a/main/fopen_wrappers.c +++ b/main/fopen_wrappers.c @@ -263,7 +263,9 @@ static FILE *php_fopen_and_set_opened_path(const char *path, const char *mode, c PHPAPI int php_fopen_primary_script(zend_file_handle *file_handle TSRMLS_DC) { FILE *fp; +#ifndef PHP_WIN32 struct stat st; +#endif char *path_info, *filename; int length; @@ -329,11 +331,14 @@ PHPAPI int php_fopen_primary_script(zend_file_handle *file_handle TSRMLS_DC) } fp = VCWD_FOPEN(filename, "rb"); +#ifndef PHP_WIN32 /* refuse to open anything that is not a regular file */ if (fp && (0 > fstat(fileno(fp), &st) || !S_ISREG(st.st_mode))) { fclose(fp); fp = NULL; } +#endif + if (!fp) { STR_FREE(SG(request_info).path_translated); /* for same reason as above */ SG(request_info).path_translated = NULL; diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c index 0e7665ea3f..7bf3cfc426 100644 --- a/main/streams/plain_wrapper.c +++ b/main/streams/plain_wrapper.c @@ -891,6 +891,8 @@ PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, cha efree(persistent_id); } + /* WIN32 always set ISREG flag */ +#ifndef PHP_WIN32 /* sanity checks for include/require. * We check these after opening the stream, so that we save * on fstat() syscalls */ @@ -899,15 +901,12 @@ PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, cha int r; r = do_fstat(self, 0); - if ( -#ifndef PHP_WIN32 - (r != 0) || /* it is OK for fstat to fail under win32 */ -#endif - (r == 0 && !S_ISREG(self->sb.st_mode))) { + if ((r == 0 && !S_ISREG(self->sb.st_mode))) { php_stream_close(ret); return NULL; } } +#endif return ret; }