Browse Source

Missing files in previous commit (Check the relevant path for open_basedir

in symlink())
experimental/first_unicode_implementation
Arnaud Le Blanc 18 years ago
parent
commit
ab812be73f
  1. 19
      main/fopen_wrappers.c
  2. 1
      main/fopen_wrappers.h

19
main/fopen_wrappers.c

@ -694,6 +694,14 @@ PHPAPI char *php_strip_url_passwd(char *url)
/* {{{ expand_filepath
*/
PHPAPI char *expand_filepath(const char *filepath, char *real_path TSRMLS_DC)
{
return expand_filepath_ex(filepath, real_path, NULL, 0 TSRMLS_CC);
}
/* }}} */
/* {{{ 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)
{
cwd_state new_state;
char cwd[MAXPATHLEN];
@ -705,7 +713,16 @@ PHPAPI char *expand_filepath(const char *filepath, char *real_path TSRMLS_DC)
cwd[0] = '\0';
} else {
const char *iam = SG(request_info).path_translated;
char *result = VCWD_GETCWD(cwd, MAXPATHLEN);
const char *result;
if (relative_to) {
if (relative_to_len > MAXPATHLEN-1U) {
return NULL;
}
result = relative_to;
memcpy(cwd, relative_to, relative_to_len+1U);
} else {
result = VCWD_GETCWD(cwd, MAXPATHLEN);
}
if (!result && (iam != filepath)) {
int fdtest = -1;

1
main/fopen_wrappers.h

@ -27,6 +27,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 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…
Cancel
Save