From afccae85d96a4f863e1d8ee51ad9a3adc78214a1 Mon Sep 17 00:00:00 2001 From: Andi Gutmans Date: Wed, 22 Nov 2000 04:59:32 +0000 Subject: [PATCH] - Thanks to "Daniel Beulshausen" --- TSRM/tsrm_virtual_cwd.c | 12 +++++++++--- TSRM/tsrm_virtual_cwd.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/TSRM/tsrm_virtual_cwd.c b/TSRM/tsrm_virtual_cwd.c index 10f50509b9..7dca55fa64 100644 --- a/TSRM/tsrm_virtual_cwd.c +++ b/TSRM/tsrm_virtual_cwd.c @@ -442,7 +442,7 @@ CWD_API char *virtual_realpath(const char *path, char *real_path) CWD_STATE_COPY(&new_state, &CWDG(cwd)); retval = virtual_file_ex(&new_state, path, NULL); - if(retval) { + if (!retval) { int len = new_state.cwd_length>MAXPATHLEN-1?MAXPATHLEN-1:new_state.cwd_length; memcpy(real_path, new_state.cwd, len); real_path[len] = '\0'; @@ -452,18 +452,24 @@ CWD_API char *virtual_realpath(const char *path, char *real_path) return NULL; } -CWD_API int virtual_filepath(const char *path, char **filepath) +CWD_API int virtual_filepath_ex(const char *path, char **filepath, verify_path_func verify_path) { cwd_state new_state; int retval; CWDLS_FETCH(); CWD_STATE_COPY(&new_state, &CWDG(cwd)); - retval = virtual_file_ex(&new_state, path, php_is_file_ok); + retval = virtual_file_ex(&new_state, path, verify_path); *filepath = new_state.cwd; return retval; + +} + +CWD_API int virtual_filepath(const char *path, char **filepath) +{ + return virtual_filepath_ex(path, filepath, php_is_file_ok); } CWD_API FILE *virtual_fopen(const char *path, const char *mode) diff --git a/TSRM/tsrm_virtual_cwd.h b/TSRM/tsrm_virtual_cwd.h index 3a4753c7d3..7ea7aa4cbf 100644 --- a/TSRM/tsrm_virtual_cwd.h +++ b/TSRM/tsrm_virtual_cwd.h @@ -100,6 +100,7 @@ CWD_API char *virtual_getcwd(char *buf, size_t size); CWD_API int virtual_chdir(const char *path); CWD_API int virtual_chdir_file(const char *path, int (*p_chdir)(const char *path)); CWD_API int virtual_filepath(const char *path, char **filepath); +CWD_API int virtual_filepath_ex(const char *path, char **filepath, verify_path_func verify_path); CWD_API char *virtual_realpath(const char *path, char *real_path); CWD_API FILE *virtual_fopen(const char *path, const char *mode); CWD_API int virtual_open(const char *path, int flags, ...); -- 2.40.0