]> granicus.if.org Git - php/commitdiff
Removed unnecessary checks for ISREG file and corresponding stat() calls on Wind
authorDmitry Stogov <dmitry@php.net>
Fri, 10 Nov 2006 10:55:43 +0000 (10:55 +0000)
committerDmitry Stogov <dmitry@php.net>
Fri, 10 Nov 2006 10:55:43 +0000 (10:55 +0000)
ows

main/fopen_wrappers.c
main/streams/plain_wrapper.c

index b4f302d8383848e77c6f392b77870f2f2c2b5539..6e94fa2de83696f1dd17b70f6600342369e93008 100644 (file)
@@ -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;
index 0e7665ea3f57dd0fba5484bebae98621c7c15120..7bf3cfc4268619f96180b5a0ba2f4929de1445de 100644 (file)
@@ -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;
                }