cvs: php4(PHP_4_3) /ext/standard exec.c /main streams.c

From: Date: Thu, 19 Dec 2002 20:34:34 +0000
Subject: cvs: php4(PHP_4_3) /ext/standard exec.c /main streams.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-17284@lists.php.net to get a copy of this message
wez Thu Dec 19 15:34:34 2002 EDT Modified files: (Branch: PHP_4_3) /php4/ext/standard exec.c /php4/main streams.c Log: MFH fix for bug #21077. (proc_open problems with BSD) Index: php4/ext/standard/exec.c diff -u php4/ext/standard/exec.c:1.84.2.2 php4/ext/standard/exec.c:1.84.2.3 --- php4/ext/standard/exec.c:1.84.2.2 Thu Dec 12 12:44:48 2002 +++ php4/ext/standard/exec.c Thu Dec 19 15:34:33 2002 @@ -15,7 +15,7 @@ | Author: Rasmus Lerdorf | +----------------------------------------------------------------------+ */ -/* $Id: exec.c,v 1.84.2.2 2002/12/12 17:44:48 wez Exp $ */ +/* $Id: exec.c,v 1.84.2.3 2002/12/19 20:34:33 wez Exp $ */ #include <stdio.h> #include "php.h" @@ -976,7 +976,7 @@ fp = fdopen(descriptors[i].parentend, mode_string); #endif if (fp) { - stream = php_stream_fopen_from_pipe(fp, mode_string); + stream = php_stream_fopen_from_file(fp, mode_string); if (stream) { zval *retfp; Index: php4/main/streams.c diff -u php4/main/streams.c:1.125.2.20 php4/main/streams.c:1.125.2.21 --- php4/main/streams.c:1.125.2.20 Thu Dec 12 12:44:48 2002 +++ php4/main/streams.c Thu Dec 19 15:34:34 2002 @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streams.c,v 1.125.2.20 2002/12/12 17:44:48 wez Exp $ */ +/* $Id: streams.c,v 1.125.2.21 2002/12/19 20:34:34 wez Exp $ */ #define _GNU_SOURCE #include "php.h" @@ -1298,6 +1298,7 @@ PHPAPI php_stream *_php_stream_fopen_from_file(FILE *file, const char *mode STREAMS_DC TSRMLS_DC) { php_stdio_stream_data *self; + php_stream *stream; self = emalloc_rel_orig(sizeof(*self)); self->file = file; @@ -1314,7 +1315,13 @@ } #endif - return php_stream_alloc_rel(&php_stream_stdio_ops, self, 0, mode); + stream = php_stream_alloc_rel(&php_stream_stdio_ops, self, 0, mode); + + if (stream && self->is_pipe) { + stream->flags |= PHP_STREAM_FLAG_NO_SEEK; + } + + return stream; } PHPAPI php_stream *_php_stream_fopen_from_pipe(FILE *file, const char *mode STREAMS_DC TSRMLS_DC) @@ -1403,10 +1410,11 @@ ret = WEXITSTATUS(ret); } #endif - } else { ret = fclose(data->file); } + } else { + return 0;/* everything should be closed already -> success*/ } if (data->temp_file_name) { unlink(data->temp_file_name); @@ -1786,7 +1794,7 @@ /* skip the sanity check; fstat doesn't appear to work on * UNC paths */ if (!IS_UNC_PATH(filename, strlen(filename))) -#endif +#endif goto err; }

« previous php.cvs (#17284) next »