summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xmain/php_streams.h6
-rw-r--r--main/streams/cast.c6
-rw-r--r--main/streams/php_streams_int.h7
-rw-r--r--main/streams/plain_wrapper.c2
4 files changed, 11 insertions, 10 deletions
diff --git a/main/php_streams.h b/main/php_streams.h
index 2ac8151b53..99a75473f4 100755
--- a/main/php_streams.h
+++ b/main/php_streams.h
@@ -462,12 +462,6 @@ END_EXTERN_C()
#define PHP_STREAM_CAST_MASK (PHP_STREAM_CAST_TRY_HARD | PHP_STREAM_CAST_RELEASE | PHP_STREAM_CAST_INTERNAL)
BEGIN_EXTERN_C()
PHPAPI int _php_stream_cast(php_stream *stream, int castas, void **ret, int show_err TSRMLS_DC);
-/* This functions transforms the first char to 'w' if it's not 'r', 'a' or 'w'
- * and strips any subsequent chars except '+' and 'b'.
- * Use this to sanitize stream->mode if you call e.g. fdopen, fopencookie or
- * any other function that expects standard modes and you allow non-standard
- * ones. result should be a char[5]. */
-PHPAPI void php_stream_rep_nonstand_mode(php_stream *stream, char *result);
END_EXTERN_C()
/* use this to check if a stream can be cast into another form */
#define php_stream_can_cast(stream, as) _php_stream_cast((stream), (as), NULL, 0 TSRMLS_CC)
diff --git a/main/streams/cast.c b/main/streams/cast.c
index 89bfa0ab46..d3be31b22e 100644
--- a/main/streams/cast.c
+++ b/main/streams/cast.c
@@ -144,9 +144,9 @@ static COOKIE_IO_FUNCTIONS_T stream_cookie_functions =
#endif
/* }}} */
-/* {{{ php_stream_rep_nonstand_mode
+/* {{{ php_stream_mode_sanitize_fdopen_fopencookie
* Result should have at least size 5, e.g. to write wbx+\0 */
-PHPAPI void php_stream_rep_nonstand_mode(php_stream *stream, char *result)
+void php_stream_mode_sanitize_fdopen_fopencookie(php_stream *stream, char *result)
{
/* replace modes not supported by fdopen and fopencookie, but supported
* by PHP's fread(), so that their calls won't fail */
@@ -233,7 +233,7 @@ PHPAPI int _php_stream_cast(php_stream *stream, int castas, void **ret, int show
{
char fixed_mode[5];
- php_stream_rep_nonstand_mode(stream, fixed_mode);
+ php_stream_mode_sanitize_fdopen_fopencookie(stream, fixed_mode);
*(FILE**)ret = fopencookie(stream, fixed_mode, PHP_STREAM_COOKIE_FUNCTIONS);
}
diff --git a/main/streams/php_streams_int.h b/main/streams/php_streams_int.h
index 273d85eefb..b0242c8884 100644
--- a/main/streams/php_streams_int.h
+++ b/main/streams/php_streams_int.h
@@ -59,6 +59,13 @@
#define S_ISREG(mode) (((mode)&S_IFMT) == S_IFREG)
#endif
+/* This functions transforms the first char to 'w' if it's not 'r', 'a' or 'w'
+ * and strips any subsequent chars except '+' and 'b'.
+ * Use this to sanitize stream->mode if you call e.g. fdopen, fopencookie or
+ * any other function that expects standard modes and you allow non-standard
+ * ones. result should be a char[5]. */
+void php_stream_mode_sanitize_fdopen_fopencookie(php_stream *stream, char *result);
+
void php_stream_tidy_wrapper_error_log(php_stream_wrapper *wrapper TSRMLS_DC);
void php_stream_display_wrapper_errors(php_stream_wrapper *wrapper, const char *path, const char *caption TSRMLS_DC);
diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c
index bc5137c01f..5a1f11b573 100644
--- a/main/streams/plain_wrapper.c
+++ b/main/streams/plain_wrapper.c
@@ -491,7 +491,7 @@ static int php_stdiop_cast(php_stream *stream, int castas, void **ret TSRMLS_DC)
/* we were opened as a plain file descriptor, so we
* need fdopen now */
char fixed_mode[5];
- php_stream_rep_nonstand_mode(stream, fixed_mode);
+ php_stream_mode_sanitize_fdopen_fopencookie(stream, fixed_mode);
data->file = fdopen(data->fd, fixed_mode);
if (data->file == NULL) {
return FAILURE;