mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
- add expand_filepath_with_mode (not used anywhere yet but will be used for file ops (fopen&co) to avoid extra links resolution and other non required ops on open
This commit is contained in:
parent
a06539a10d
commit
090bfcdfe1
3 changed files with 14 additions and 1 deletions
|
@ -11,6 +11,7 @@ UPGRADE NOTES - PHP X.Y
|
|||
f. streams that enclose private streams
|
||||
g. leak_variable
|
||||
h. API Signature changes
|
||||
i. new TSRM function expand_filepath_with_mode
|
||||
|
||||
2. Build system changes
|
||||
a. Unix build system changes
|
||||
|
@ -184,6 +185,9 @@ it increments the refcounts of those objects instead.
|
|||
. php_unescape_html_entities
|
||||
PHPAPI char *php_unescape_html_entities(unsigned char *old, size_t oldlen, size_t *newlen, int all, int flags, char *hint_charset TSRMLS_DC);
|
||||
|
||||
i.
|
||||
PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int realpath_mode TSRMLS_DC);
|
||||
expand_filepath_with_mode lets define how realpath will behave, using one of the existing mode: CWD_EXPAND , CWD_FILEPATH or CWD_REALPATH.
|
||||
|
||||
========================
|
||||
2. Build system changes
|
||||
|
|
|
@ -740,6 +740,14 @@ PHPAPI char *expand_filepath(const char *filepath, char *real_path TSRMLS_DC)
|
|||
/* {{{ expand_filepath_ex
|
||||
*/
|
||||
PHPAPI char *expand_filepath_ex(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len TSRMLS_DC)
|
||||
{
|
||||
return expand_filepath_with_mode(filepath, real_path, relative_to, relative_to_len, CWD_FILEPATH TSRMLS_CC);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ expand_filepath_use_realpath
|
||||
*/
|
||||
PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int realpath_mode TSRMLS_DC)
|
||||
{
|
||||
cwd_state new_state;
|
||||
char cwd[MAXPATHLEN];
|
||||
|
@ -785,7 +793,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 TSRMLS_CC)) {
|
||||
if (virtual_file_ex(&new_state, filepath, NULL, realpath_mode TSRMLS_CC)) {
|
||||
free(new_state.cwd);
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ BEGIN_EXTERN_C()
|
|||
PHPAPI int php_fopen_primary_script(zend_file_handle *file_handle TSRMLS_DC);
|
||||
PHPAPI char *expand_filepath(const char *filepath, char *real_path TSRMLS_DC);
|
||||
PHPAPI char *expand_filepath_ex(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len TSRMLS_DC);
|
||||
PHPAPI char *expand_filepath_with_mode(const char *filepath, char *real_path, const char *relative_to, size_t relative_to_len, int use_realpath TSRMLS_DC);
|
||||
|
||||
PHPAPI int php_check_open_basedir(const char *path TSRMLS_DC);
|
||||
PHPAPI int php_check_open_basedir_ex(const char *path, int warn TSRMLS_DC);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue