com php-src: properly set the pipe blocking option: ext/standard/php_fopen_wrapper.c ext/standard/proc_op en.c

From: 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)

« previous php.cvs (#87698) next »