summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShane Caraveo <shane@php.net>2003-10-19 20:57:20 +0000
committerShane Caraveo <shane@php.net>2003-10-19 20:57:20 +0000
commit0029a45795060391e41d2423d15f5fe76c2fb119 (patch)
tree61649df36dcbd5e353e6b5a8963255a6c49ba986
parente5103d764a2370925aa246c20b48b5dbf2ccdc1b (diff)
downloadphp-git-0029a45795060391e41d2423d15f5fe76c2fb119.tar.gz
revert file: support in preparation for simpler patch
-rw-r--r--main/streams/plain_wrapper.c99
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;