diff options
author | Shane Caraveo <shane@php.net> | 2003-10-19 20:57:20 +0000 |
---|---|---|
committer | Shane Caraveo <shane@php.net> | 2003-10-19 20:57:20 +0000 |
commit | 0029a45795060391e41d2423d15f5fe76c2fb119 (patch) | |
tree | 61649df36dcbd5e353e6b5a8963255a6c49ba986 | |
parent | e5103d764a2370925aa246c20b48b5dbf2ccdc1b (diff) | |
download | php-git-0029a45795060391e41d2423d15f5fe76c2fb119.tar.gz |
revert file: support in preparation for simpler patch
-rw-r--r-- | main/streams/plain_wrapper.c | 99 |
1 files changed, 32 insertions, 67 deletions
diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c index c2657a03d9..1f060ec666 100644 --- a/main/streams/plain_wrapper.c +++ b/main/streams/plain_wrapper.c @@ -22,7 +22,6 @@ #include "php_globals.h" #include "php_network.h" #include "php_open_temporary_file.h" -#include "ext/standard/url.h" #include "ext/standard/file.h" #include "ext/standard/flock_compat.h" #include <stddef.h> @@ -87,18 +86,13 @@ PHPAPI int php_stream_parse_fopen_modes(const char *mode, int *open_flags) PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, char **opened_path, int options STREAMS_DC TSRMLS_DC) { char *realpath = NULL; - php_url *url = NULL; struct stat st; int open_flags; int fd; - php_stream *ret = NULL; + php_stream *ret; int persistent = options & STREAM_OPEN_PERSISTENT; char *persistent_id = NULL; - if(!filename) { - return NULL; - } - if (FAILURE == php_stream_parse_fopen_modes(mode, &open_flags)) { if (options & REPORT_ERRORS) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "`%s' is not a valid mode for fopen", mode); @@ -106,13 +100,8 @@ PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, cha return NULL; } - if (!strncasecmp(filename, "file", 4)) { - url = php_url_parse((char *)filename); - filename = url->path; - } - if ((realpath = expand_filepath(filename, NULL TSRMLS_CC)) == NULL) { - goto stream_fopen_done; + return NULL; } if (persistent) { @@ -123,10 +112,14 @@ PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, cha *opened_path = realpath; realpath = NULL; } + if (realpath) { + efree(realpath); + } /* fall through */ case PHP_STREAM_PERSISTENT_FAILURE: - goto stream_fopen_done; + efree(persistent_id);; + return ret; } } @@ -150,22 +143,22 @@ PHPAPI php_stream *_php_stream_fopen(const char *filename, const char *mode, cha *opened_path = realpath; realpath = NULL; } - goto stream_fopen_done; + if (realpath) { + efree(realpath); + } + if (persistent_id) { + efree(persistent_id); + } + return ret; } err: close(fd); } -stream_fopen_done: - if (realpath) { - efree(realpath); - } - if (url) { - efree(url); - } + efree(realpath); if (persistent_id) { efree(persistent_id); } - return ret; + return NULL; } /* }}} */ @@ -966,7 +959,6 @@ PHPAPI php_stream *_php_stream_fopen_with_path(char *filename, char *mode, char { /* code ripped off from fopen_wrappers.c */ char *pathbuf, *ptr, *end; - php_url *url = NULL; char *exec_fname; char trypath[MAXPATHLEN]; struct stat sb; @@ -983,11 +975,6 @@ PHPAPI php_stream *_php_stream_fopen_with_path(char *filename, char *mode, char return NULL; } - if (!strncasecmp(filename, "file", 4)) { - url = php_url_parse((char *)filename); - filename = url->path; - } - filename_length = strlen(filename); /* Relative path open */ @@ -1003,16 +990,13 @@ PHPAPI php_stream *_php_stream_fopen_with_path(char *filename, char *mode, char if (((options & STREAM_DISABLE_OPEN_BASEDIR) == 0) && php_check_open_basedir(filename TSRMLS_CC)) { - stream = NULL; - goto stream_done; + return NULL; } if (PG(safe_mode) && (!php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM))) { - stream = NULL; - goto stream_done; + return NULL; } - stream = php_stream_fopen_rel(filename, mode, opened_path, options); - goto stream_done; + return php_stream_fopen_rel(filename, mode, opened_path, options); } /* @@ -1026,23 +1010,17 @@ not_relative_path: if (IS_ABSOLUTE_PATH(filename, filename_length)) { if (((options & STREAM_DISABLE_OPEN_BASEDIR) == 0) && php_check_open_basedir(filename TSRMLS_CC)) { - stream = NULL; - goto stream_done; + return NULL; } - if ((php_check_safe_mode_include_dir(filename TSRMLS_CC)) == 0) { + if ((php_check_safe_mode_include_dir(filename TSRMLS_CC)) == 0) /* filename is in safe_mode_include_dir (or subdir) */ - stream = php_stream_fopen_rel(filename, mode, opened_path, options); - goto stream_done; - } + return php_stream_fopen_rel(filename, mode, opened_path, options); - if (PG(safe_mode) && (!php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM))) { - stream = NULL; - goto stream_done; - } + if (PG(safe_mode) && (!php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM))) + return NULL; - stream = php_stream_fopen_rel(filename, mode, opened_path, options); - goto stream_done; + return php_stream_fopen_rel(filename, mode, opened_path, options); } #ifdef PHP_WIN32 @@ -1058,36 +1036,29 @@ not_relative_path: free(cwd); if (((options & STREAM_DISABLE_OPEN_BASEDIR) == 0) && php_check_open_basedir(trypath TSRMLS_CC)) { - stream = NULL; - goto stream_done; + return NULL; } if ((php_check_safe_mode_include_dir(trypath TSRMLS_CC)) == 0) { - stream = php_stream_fopen_rel(trypath, mode, opened_path, options); - goto stream_done; + return php_stream_fopen_rel(trypath, mode, opened_path, options); } if (PG(safe_mode) && (!php_checkuid(trypath, mode, CHECKUID_CHECK_MODE_PARAM))) { - stream = NULL; - goto stream_done; + return NULL; } - stream = php_stream_fopen_rel(trypath, mode, opened_path, options); - goto stream_done; + return php_stream_fopen_rel(trypath, mode, opened_path, options); } #endif if (!path || (path && !*path)) { if (((options & STREAM_DISABLE_OPEN_BASEDIR) == 0) && php_check_open_basedir(path TSRMLS_CC)) { - stream = NULL; - goto stream_done; + return NULL; } if (PG(safe_mode) && (!php_checkuid(filename, mode, CHECKUID_CHECK_MODE_PARAM))) { - stream = NULL; - goto stream_done; + return NULL; } - stream = php_stream_fopen_rel(filename, mode, opened_path, options); - goto stream_done; + return php_stream_fopen_rel(filename, mode, opened_path, options); } /* check in provided path */ @@ -1146,18 +1117,12 @@ not_relative_path: stream = php_stream_fopen_rel(trypath, mode, opened_path, options); if (stream) { stream_done: - if (url) { - efree(url); - } efree(pathbuf); return stream; } ptr = end; } /* end provided path */ - if (url) { - efree(url); - } efree(pathbuf); return NULL; |