proper fix

This commit is contained in:
Dmitry Stogov 2008-05-20 07:41:35 +00:00
parent 07d6758c86
commit 50983e372c

View File

@ -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