com php-src: properly set the pipe blocking option: ext/standard/php_fopen_wrapper.c ext/standard/proc_op en.c
| From: | Anatol Belski | Date: | Thu, 02 Jul 2015 12:22:57 +0000 |
| Subject: | com php-src: properly set the pipe blocking option: ext/standard/php_fopen_wrapper.c ext/standard/proc_op en.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-87698@lists.php.net to get a copy of this message | ||
Commit: d516a14fb93705ec03b39e611899a95bc0d591fe
Author: Anatol Belski <ab@php.net> Tue, 30 Jun 2015 17:21:21 +0200
Parents: 1a5a4d546ede8fcdf7a9cc4462858bfedf3644d9
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=d516a14fb93705ec03b39e611899a95bc0d591fe
Log:
properly set the pipe blocking option
Changed paths:
M ext/standard/php_fopen_wrapper.c
M ext/standard/proc_open.c
Diff:
diff --git a/ext/standard/php_fopen_wrapper.c b/ext/standard/php_fopen_wrapper.c
index c3bd4b0..89e4a81 100644
--- a/ext/standard/php_fopen_wrapper.c
+++ b/ext/standard/php_fopen_wrapper.c
@@ -400,17 +400,19 @@ php_stream * php_stream_url_wrap_php(php_stream_wrapper *wrapper, const char
*pa
if (stream == NULL) {
close(fd);
}
+ }
+
#ifdef PHP_WIN32
{
- zval *blocking_pipes = php_stream_context_get_option(context, "pipe",
"blocking");
- if (blocking_pipes) {
- convert_to_long(blocking_pipes);
- php_stream_set_option(stream, PHP_STREAM_OPTION_PIPE_BLOCKING, Z_LVAL_P(blocking_pipes), NULL);
+ if (stream && context) {
+ zval *blocking_pipes = php_stream_context_get_option(context, "pipe",
"blocking");
+ if (blocking_pipes) {
+ convert_to_long(blocking_pipes);
+ php_stream_set_option(stream, PHP_STREAM_OPTION_PIPE_BLOCKING, Z_LVAL_P(blocking_pipes),
NULL);
+ }
}
}
#endif
- }
-
return stream;
}
/* }}} */
diff --git a/ext/standard/proc_open.c b/ext/standard/proc_open.c
index cee4728..447cbbc 100644
--- a/ext/standard/proc_open.c
+++ b/ext/standard/proc_open.c
@@ -546,7 +546,6 @@ PHP_FUNCTION(proc_open)
}
#ifdef PHP_WIN32
- php_stream_set_option(stream, PHP_STREAM_OPTION_PIPE_BLOCKING, blocking_pipes, NULL);
descriptors[ndesc].childend = dup_fd_as_handle((int)fd);
if (descriptors[ndesc].childend == NULL) {
php_error_docref(NULL, E_WARNING, "unable to dup File-Handle for descriptor %d",
nindex);
@@ -941,6 +940,7 @@ PHP_FUNCTION(proc_open)
#ifdef PHP_WIN32
stream = php_stream_fopen_from_fd(_open_osfhandle((zend_intptr_t)descriptors[i].parentend,
descriptors[i].mode_flags), mode_string, NULL);
+ php_stream_set_option(stream, PHP_STREAM_OPTION_PIPE_BLOCKING, blocking_pipes, NULL);
#else
stream = php_stream_fopen_from_fd(descriptors[i].parentend, mode_string, NULL);
# if defined(F_SETFD) && defined(FD_CLOEXEC)