mirror of
https://github.com/php/php-src.git
synced 2024-11-25 02:44:58 +08:00
- Renamed php_stream_rep_nonstand_mode to
php_stream_mode_sanitize_fdopen_fopencookie, made it not exported and movied it from php_streams.h to php_streams_int.h.
This commit is contained in:
parent
b84e262f63
commit
8342c36f09
@ -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)
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user