From: Dmitry Stogov Date: Tue, 20 May 2008 07:41:35 +0000 (+0000) Subject: proper fix X-Git-Tag: BEFORE_NEW_PARAMETER_PARSE~184 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=50983e372c529a704dd62e659c3d63043d3fb7a4;p=php proper fix --- diff --git a/TSRM/tsrm_virtual_cwd.c b/TSRM/tsrm_virtual_cwd.c index ec729465ca..da6a380bb2 100644 --- a/TSRM/tsrm_virtual_cwd.c +++ b/TSRM/tsrm_virtual_cwd.c @@ -491,6 +491,7 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func int use_relative_path = 0; #ifdef TSRM_WIN32 int is_unc; + int exists; #endif TSRMLS_FETCH(); @@ -589,6 +590,7 @@ no_realpath: CWD_STATE_COPY(&old_state, state); #ifdef TSRM_WIN32 + exists = (use_realpath != CWD_EXPAND); ret = 0; is_unc = 0; if (path_length >= 2 && path[1] == ':') { @@ -696,13 +698,16 @@ no_realpath: ptr_length = length; FindClose(hFind); ret = 0; - } else if (use_realpath == CWD_REALPATH) { + } else { if (is_unc) { /* skip share name */ is_unc--; ret = 0; } else { - ret = 1; + exists = 0; + if (use_realpath == CWD_REALPATH) { + ret = 1; + } } } } @@ -743,7 +748,7 @@ no_realpath: /* Store existent file in realpath cache. */ #ifdef TSRM_WIN32 - if (use_cache && !is_unc && (use_realpath == CWD_REALPATH)) { + if (use_cache && !is_unc && exists) { #else if (use_cache && (use_realpath == CWD_REALPATH)) { #endif