- When mode is specified the flag is a don't care
authorAndi Gutmans <andi@php.net>
Thu, 2 Nov 2000 23:30:48 +0000 (23:30 +0000)
committerAndi Gutmans <andi@php.net>
Thu, 2 Nov 2000 23:30:48 +0000 (23:30 +0000)
main/fopen_wrappers.c
main/safe_mode.h

index eeaba65390cdae49c8dd88e367ceb22118a78766..48e567b9d2fe80ca5a9eadd89588c06d93136180 100644 (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);
index d34f7dc9119f47d0fbe713edc8b4cbc06ab7da5e..9f012689f4be547ed93bd5a5555d8afd9bbcf82d 100644 (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);