From: Marcus Boerger Date: Wed, 14 Dec 2005 00:06:09 +0000 (+0000) Subject: - Fix temp/memory stream modes X-Git-Tag: php-5.1.2RC1~115 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=71c7cdb7d9867ac68ad1a211b4629cd0f7cf2923;p=php - Fix temp/memory stream modes --- diff --git a/main/streams/memory.c b/main/streams/memory.c index af050665b1..28ad86498f 100644 --- a/main/streams/memory.c +++ b/main/streams/memory.c @@ -221,7 +221,7 @@ PHPAPI php_stream *_php_stream_memory_create(int mode STREAMS_DC TSRMLS_DC) self->smax = -1; self->mode = mode; - stream = php_stream_alloc(&php_stream_memory_ops, self, 0, "r+b"); + stream = php_stream_alloc(&php_stream_memory_ops, self, 0, mode & TEMP_STREAM_READONLY ? "r+b" : "w+b"); stream->flags |= PHP_STREAM_FLAG_NO_BUFFER; return stream; } @@ -441,7 +441,7 @@ PHPAPI php_stream *_php_stream_temp_create(int mode, size_t max_memory_usage STR self = ecalloc(1, sizeof(*self)); self->smax = max_memory_usage; self->mode = mode; - stream = php_stream_alloc(&php_stream_temp_ops, self, 0, "r+b"); + stream = php_stream_alloc(&php_stream_temp_ops, self, 0, mode & TEMP_STREAM_READONLY ? "r+b" : "w+b"); stream->flags |= PHP_STREAM_FLAG_NO_BUFFER; self->innerstream = php_stream_memory_create(mode); @@ -456,7 +456,7 @@ PHPAPI php_stream *_php_stream_temp_open(int mode, size_t max_memory_usage, char php_stream *stream; php_stream_temp_data *ms; - if ((stream = php_stream_temp_create_rel(mode & ~TEMP_STREAM_READONLY, max_memory_usage)) != NULL) { + if ((stream = php_stream_temp_create_rel(mode, max_memory_usage)) != NULL) { if (length) { assert(buf != NULL); php_stream_temp_write(stream, buf, length TSRMLS_CC);