- When mode is specified the flag is a don't care

This commit is contained in:
Andi Gutmans 2000-11-02 23:30:48 +00:00
parent 1956fb48d2
commit 6da2eaf600
2 changed files with 6 additions and 5 deletions

View File

@ -256,7 +256,7 @@ PHPAPI FILE *php_fopen_wrapper(char *path, char *mode, int options, int *issock,
if (options & USE_PATH && PG(include_path) != NULL) {
return php_fopen_with_path(path, mode, PG(include_path), opened_path);
} else {
if (options & ENFORCE_SAFE_MODE && PG(safe_mode) && (!php_checkuid(path, mode, CHECKUID_DISALLOW_FILE_NOT_EXISTS))) {
if (options & ENFORCE_SAFE_MODE && PG(safe_mode) && (!php_checkuid(path, mode, CHECKUID_CHECK_MODE_PARAM))) {
return NULL;
}
return php_fopen_and_set_opened_path(path, mode, opened_path);
@ -373,14 +373,14 @@ PHPAPI FILE *php_fopen_with_path(char *filename, char *mode, char *path, char **
/* Absolute & relative path open */
if ((*filename == '.') || (IS_ABSOLUTE_PATH(filename, filename_length))) {
if (PG(safe_mode) && (!php_checkuid(filename, mode, CHECKUID_DISALLOW_FILE_NOT_EXISTS))) {
if (PG(safe_mode) && (!php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM))) {
return NULL;
}
return php_fopen_and_set_opened_path(filename, mode, opened_path);
}
if (!path || (path && !*path)) {
if (PG(safe_mode) && (!php_checkuid(filename, mode, CHECKUID_DISALLOW_FILE_NOT_EXISTS))) {
if (PG(safe_mode) && (!php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM))) {
return NULL;
}
return php_fopen_and_set_opened_path(filename, mode, opened_path);
@ -401,7 +401,7 @@ PHPAPI FILE *php_fopen_with_path(char *filename, char *mode, char *path, char **
}
snprintf(trypath, MAXPATHLEN, "%s/%s", ptr, filename);
if (PG(safe_mode)) {
if (V_STAT(trypath, &sb) == 0 && (!php_checkuid(trypath, mode, CHECKUID_DISALLOW_FILE_NOT_EXISTS))) {
if (V_STAT(trypath, &sb) == 0 && (!php_checkuid(trypath, mode, CHECKUID_CHECK_MODE_PARAM))) {
efree(pathbuf);
return NULL;
}
@ -464,7 +464,7 @@ static FILE *php_fopen_url_wrapper(const char *path, char *mode, int options, in
if (options & USE_PATH) {
fp = php_fopen_with_path((char *) path, mode, PG(include_path), opened_path);
} else {
if (options & ENFORCE_SAFE_MODE && PG(safe_mode) && (!php_checkuid(path, mode, CHECKUID_DISALLOW_FILE_NOT_EXISTS))) {
if (options & ENFORCE_SAFE_MODE && PG(safe_mode) && (!php_checkuid(path, mode, CHECKUID_CHECK_MODE_PARAM))) {
fp = NULL;
} else {
fp = php_fopen_and_set_opened_path(path, mode, opened_path);

View File

@ -6,6 +6,7 @@
#define CHECKUID_ALLOW_FILE_NOT_EXISTS 1
#define CHECKUID_CHECK_FILE_AND_DIR 2
#define CHECKUID_ALLOW_ONLY_DIR 3
#define CHECKUID_CHECK_MODE_PARAM 4
extern PHPAPI int php_checkuid(const char *filename, char *fopen_mode, int mode);
extern PHPAPI char *php_get_current_user(void);