]> granicus.if.org Git - php/commitdiff
MFB51: Fixed bug #31347 (is_dir and is_file (incorrectly) return true for any
authorIlia Alshanetsky <iliaa@php.net>
Tue, 20 Dec 2005 14:27:04 +0000 (14:27 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Tue, 20 Dec 2005 14:27:04 +0000 (14:27 +0000)
string greater then 255 characters).

TSRM/tsrm_config_common.h
TSRM/tsrm_virtual_cwd.c
main/php.h

index bdd171e6190465835541d25dbf4d3ba5d282a99f..62a7c8efc018493311200d20316a68db4d734612 100644 (file)
@@ -42,6 +42,8 @@ char *alloca ();
 #ifndef MAXPATHLEN
 # ifdef PATH_MAX
 #  define MAXPATHLEN PATH_MAX
+# elif defined(MAX_PATH)
+#  define MAXPATHLEN MAX_PATH
 # else
 #  define MAXPATHLEN 256
 # endif
index baf5843d00e544b5863f75253a7a73b310254a6f..cd2c6d2c5d1a1200b89fe22491df53d9e465fa1b 100644 (file)
@@ -478,13 +478,14 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
 #endif
 #if defined(TSRM_WIN32)
        {
-               char *dummy = NULL;
                int new_path_length;
   
-               new_path_length = GetLongPathName(path, dummy, 0) + 1;
+               new_path_length = GetLongPathName(path, NULL, 0);
                if (new_path_length == 0) {
                        return 1;
                }
+
+               /* GetLongPathName already counts the \0 */
                new_path = (char *) malloc(new_path_length);
                if (!new_path) {
                        return 1;
@@ -856,7 +857,9 @@ CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC)
        int retval;
 
        CWD_STATE_COPY(&new_state, &CWDG(cwd));
-       virtual_file_ex(&new_state, path, NULL, 1);
+       if (virtual_file_ex(&new_state, path, NULL, 1)) {
+               return -1;
+       }
 
        retval = stat(new_state.cwd, buf);
 
index d3e13a181edfc00c0c00d40895373475c3797f38..1639c52db435ce30fdf04a359678de13decc4ef5 100644 (file)
@@ -248,6 +248,8 @@ END_EXTERN_C()
 #ifndef MAXPATHLEN
 # ifdef PATH_MAX
 #  define MAXPATHLEN PATH_MAX
+# elif defined(MAX_PATH)
+#  define MAXPATHLEN MAX_PATH
 # else
 #  define MAXPATHLEN 256    /* Should be safe for any weird systems that do not define it */
 # endif