|
|
|
@ -390,6 +390,7 @@ PHPAPI FILE *php_fopen_with_path(char *filename, char *mode, char *path, char ** |
|
|
|
char trypath[MAXPATHLEN + 1]; |
|
|
|
struct stat sb; |
|
|
|
FILE *fp; |
|
|
|
int filename_length; |
|
|
|
PLS_FETCH(); |
|
|
|
|
|
|
|
if (opened_path) { |
|
|
|
@ -403,12 +404,10 @@ PHPAPI FILE *php_fopen_with_path(char *filename, char *mode, char *path, char ** |
|
|
|
} |
|
|
|
return php_fopen_and_set_opened_path(filename, mode, opened_path); |
|
|
|
} |
|
|
|
|
|
|
|
filename_length = strlen(filename); |
|
|
|
/* Absolute path open - prepend document_root in safe mode */ |
|
|
|
#ifdef PHP_WIN32 |
|
|
|
if (IS_SLASH(*filename) || (filename[1] == ':')) { |
|
|
|
#else |
|
|
|
if (IS_SLASH(*filename)) { |
|
|
|
#endif |
|
|
|
if (IS_ABSOLUTE_PATH(filename, filename_length)) { |
|
|
|
if (PG(safe_mode) && PG(doc_root)) { |
|
|
|
snprintf(trypath, MAXPATHLEN, "%s%s", PG(doc_root), filename); |
|
|
|
if (!php_checkuid(trypath, mode, 0)) { |
|
|
|
|