From: Pierre Joye Date: Mon, 30 Aug 2010 09:38:47 +0000 (+0000) Subject: - use TSRMLS_CC instead of TSRMLS_FETCH in virtual_file_ex X-Git-Tag: php-5.4.0alpha1~191^2~1035 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=100228aae16c2c8d358c0f0b7a7a07a7b897f1da;p=php - use TSRMLS_CC instead of TSRMLS_FETCH in virtual_file_ex --- diff --git a/TSRM/tsrm_virtual_cwd.c b/TSRM/tsrm_virtual_cwd.c index 7a046ab51a..197948f598 100644 --- a/TSRM/tsrm_virtual_cwd.c +++ b/TSRM/tsrm_virtual_cwd.c @@ -990,7 +990,7 @@ static int tsrm_realpath_r(char *path, int start, int len, int *ll, time_t *t, i /* Resolve path relatively to state and put the real path into state */ /* returns 0 for ok, 1 for error */ -CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath) /* {{{ */ +CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath TSRMLS_DC) /* {{{ */ { int path_length = strlen(path); char resolved_path[MAXPATHLEN]; @@ -1000,7 +1000,6 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func int ret; int add_slash; void *tmp; - TSRMLS_FETCH(); if (path_length == 0 || path_length >= MAXPATHLEN-1) { #ifdef TSRM_WIN32 @@ -1196,7 +1195,7 @@ verify: CWD_API int virtual_chdir(const char *path TSRMLS_DC) /* {{{ */ { - return virtual_file_ex(&CWDG(cwd), path, php_is_dir_ok, CWD_REALPATH)?-1:0; + return virtual_file_ex(&CWDG(cwd), path, php_is_dir_ok, CWD_REALPATH TSRMLS_CC)?-1:0; } /* }}} */ @@ -1256,7 +1255,7 @@ CWD_API char *virtual_realpath(const char *path, char *real_path TSRMLS_DC) /* { new_state.cwd_length = 0; } - if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH)==0) { + if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH TSRMLS_CC)==0) { int len = new_state.cwd_length>MAXPATHLEN-1?MAXPATHLEN-1:new_state.cwd_length; memcpy(real_path, new_state.cwd, len); @@ -1278,7 +1277,7 @@ CWD_API int virtual_filepath_ex(const char *path, char **filepath, verify_path_f int retval; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - retval = virtual_file_ex(&new_state, path, verify_path, CWD_FILEPATH); + retval = virtual_file_ex(&new_state, path, verify_path, CWD_FILEPATH TSRMLS_CC); *filepath = new_state.cwd; @@ -1303,7 +1302,7 @@ CWD_API FILE *virtual_fopen(const char *path, const char *mode TSRMLS_DC) /* {{{ } CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, path, NULL, CWD_FILEPATH)) { + if (virtual_file_ex(&new_state, path, NULL, CWD_FILEPATH TSRMLS_CC)) { CWD_STATE_FREE(&new_state); return NULL; } @@ -1321,7 +1320,7 @@ CWD_API int virtual_access(const char *pathname, int mode TSRMLS_DC) /* {{{ */ int ret; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, pathname, NULL, CWD_REALPATH)) { + if (virtual_file_ex(&new_state, pathname, NULL, CWD_REALPATH TSRMLS_CC)) { CWD_STATE_FREE(&new_state); return -1; } @@ -1394,7 +1393,7 @@ CWD_API int virtual_utime(const char *filename, struct utimbuf *buf TSRMLS_DC) / int ret; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH)) { + if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH TSRMLS_CC)) { CWD_STATE_FREE(&new_state); return -1; } @@ -1417,7 +1416,7 @@ CWD_API int virtual_chmod(const char *filename, mode_t mode TSRMLS_DC) /* {{{ */ int ret; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH)) { + if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH TSRMLS_CC)) { CWD_STATE_FREE(&new_state); return -1; } @@ -1436,7 +1435,7 @@ CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int li int ret; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH)) { + if (virtual_file_ex(&new_state, filename, NULL, CWD_REALPATH TSRMLS_CC)) { CWD_STATE_FREE(&new_state); return -1; } @@ -1463,7 +1462,7 @@ CWD_API int virtual_open(const char *path TSRMLS_DC, int flags, ...) /* {{{ */ int f; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, path, NULL, CWD_FILEPATH)) { + if (virtual_file_ex(&new_state, path, NULL, CWD_FILEPATH TSRMLS_CC)) { CWD_STATE_FREE(&new_state); return -1; } @@ -1491,7 +1490,7 @@ CWD_API int virtual_creat(const char *path, mode_t mode TSRMLS_DC) /* {{{ */ int f; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, path, NULL, CWD_FILEPATH)) { + if (virtual_file_ex(&new_state, path, NULL, CWD_FILEPATH TSRMLS_CC)) { CWD_STATE_FREE(&new_state); return -1; } @@ -1510,14 +1509,14 @@ CWD_API int virtual_rename(char *oldname, char *newname TSRMLS_DC) /* {{{ */ int retval; CWD_STATE_COPY(&old_state, &CWDG(cwd)); - if (virtual_file_ex(&old_state, oldname, NULL, CWD_EXPAND)) { + if (virtual_file_ex(&old_state, oldname, NULL, CWD_EXPAND TSRMLS_CC)) { CWD_STATE_FREE(&old_state); return -1; } oldname = old_state.cwd; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, newname, NULL, CWD_EXPAND)) { + if (virtual_file_ex(&new_state, newname, NULL, CWD_EXPAND TSRMLS_CC)) { CWD_STATE_FREE(&old_state); CWD_STATE_FREE(&new_state); return -1; @@ -1546,7 +1545,7 @@ CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC) /* {{{ */ int retval; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH)) { + if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH TSRMLS_CC)) { CWD_STATE_FREE(&new_state); return -1; } @@ -1565,7 +1564,7 @@ CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC) /* {{{ * int retval; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, path, NULL, CWD_EXPAND)) { + if (virtual_file_ex(&new_state, path, NULL, CWD_EXPAND TSRMLS_CC)) { CWD_STATE_FREE(&new_state); return -1; } @@ -1584,7 +1583,7 @@ CWD_API int virtual_unlink(const char *path TSRMLS_DC) /* {{{ */ int retval; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, path, NULL, CWD_EXPAND)) { + if (virtual_file_ex(&new_state, path, NULL, CWD_EXPAND TSRMLS_CC)) { CWD_STATE_FREE(&new_state); return -1; } @@ -1602,7 +1601,7 @@ CWD_API int virtual_mkdir(const char *pathname, mode_t mode TSRMLS_DC) /* {{{ */ int retval; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, pathname, NULL, CWD_FILEPATH)) { + if (virtual_file_ex(&new_state, pathname, NULL, CWD_FILEPATH TSRMLS_CC)) { CWD_STATE_FREE(&new_state); return -1; } @@ -1623,7 +1622,7 @@ CWD_API int virtual_rmdir(const char *pathname TSRMLS_DC) /* {{{ */ int retval; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, pathname, NULL, CWD_EXPAND)) { + if (virtual_file_ex(&new_state, pathname, NULL, CWD_EXPAND TSRMLS_CC)) { CWD_STATE_FREE(&new_state); return -1; } @@ -1645,7 +1644,7 @@ CWD_API DIR *virtual_opendir(const char *pathname TSRMLS_DC) /* {{{ */ DIR *retval; CWD_STATE_COPY(&new_state, &CWDG(cwd)); - if (virtual_file_ex(&new_state, pathname, NULL, CWD_REALPATH)) { + if (virtual_file_ex(&new_state, pathname, NULL, CWD_REALPATH TSRMLS_CC)) { CWD_STATE_FREE(&new_state); return NULL; } @@ -1777,7 +1776,7 @@ CWD_API char *tsrm_realpath(const char *path, char *real_path TSRMLS_DC) /* {{{ new_state.cwd_length = 0; } - if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH)) { + if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH TSRMLS_CC)) { free(new_state.cwd); return NULL; } diff --git a/TSRM/tsrm_virtual_cwd.h b/TSRM/tsrm_virtual_cwd.h index 2be43a1a86..1636ca6984 100644 --- a/TSRM/tsrm_virtual_cwd.h +++ b/TSRM/tsrm_virtual_cwd.h @@ -195,7 +195,7 @@ CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int li #define CWD_FILEPATH 1 /* resolve symlinks if file is exist otherwise expand */ #define CWD_REALPATH 2 /* call realpath(), resolve symlinks. File must exist */ -CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath); +CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath TSRMLS_DC); CWD_API char *tsrm_realpath(const char *path, char *real_path TSRMLS_DC); diff --git a/UPGRADING b/UPGRADING index a0d86d0b3c..bd4b0dbfa6 100755 --- a/UPGRADING +++ b/UPGRADING @@ -28,7 +28,7 @@ UPGRADE NOTES - PHP X.Y h. New methods i. New class constants j. New hash algorithms - +13. Internals API changes ======================================== 1. Changes made to default configuration @@ -258,3 +258,11 @@ UPGRADE NOTES - PHP X.Y - fnv132 - fnv164 - joaat + +======================== +13. Internal API changes +======================== + +virtual_file_ex takes now a TSRM context as last parameter: +CWD_API int virtual_file_ex(cwd_state *state, const char *path, + verify_path_func verify_path, int use_realpath TSRLS_DC); diff --git a/ext/zip/php_zip.c b/ext/zip/php_zip.c index bd1275d0f2..5587b9a3be 100644 --- a/ext/zip/php_zip.c +++ b/ext/zip/php_zip.c @@ -160,7 +160,7 @@ static int php_zip_extract_file(struct zip * za, char *dest, char *file, int fil /* Clean/normlize the path and then transform any path (absolute or relative) to a path relative to cwd (../../mydir/foo.txt > mydir/foo.txt) */ - virtual_file_ex(&new_state, file, NULL, CWD_EXPAND); + virtual_file_ex(&new_state, file, NULL, CWD_EXPAND TSRMLS_CC); path_cleaned = php_zip_make_relative_path(new_state.cwd, new_state.cwd_length); path_cleaned_len = strlen(path_cleaned); diff --git a/main/fopen_wrappers.c b/main/fopen_wrappers.c index 827e76817f..a0a3206042 100644 --- a/main/fopen_wrappers.c +++ b/main/fopen_wrappers.c @@ -759,7 +759,7 @@ PHPAPI char *expand_filepath_ex(const char *filepath, char *real_path, const cha new_state.cwd = strdup(cwd); new_state.cwd_length = strlen(cwd); - if (virtual_file_ex(&new_state, filepath, NULL, CWD_FILEPATH)) { + if (virtual_file_ex(&new_state, filepath, NULL, CWD_FILEPATH TSRMLS_CC)) { free(new_state.cwd); return NULL; } diff --git a/main/php_open_temporary_file.c b/main/php_open_temporary_file.c index cf17f27d66..7759b33261 100644 --- a/main/php_open_temporary_file.c +++ b/main/php_open_temporary_file.c @@ -127,7 +127,7 @@ static int php_do_open_temporary_file(const char *path, const char *pfx, char ** new_state.cwd = strdup(cwd); new_state.cwd_length = strlen(cwd); - if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH)) { + if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH TSRMLS_CC)) { free(new_state.cwd); return -1; }