Fixed bug #29801 (Set limit on the size of mmapable data).

This commit is contained in:
Ilia Alshanetsky 2004-11-15 23:43:12 +00:00
parent a04722b1b0
commit d98a44d483
2 changed files with 6 additions and 3 deletions

View File

@ -407,8 +407,11 @@ END_EXTERN_C()
#define PHP_STREAM_OPTION_RETURN_NOTIMPL -2 /* underlying stream does not implement; streams can handle it instead */
/* copy up to maxlen bytes from src to dest. If maxlen is PHP_STREAM_COPY_ALL, copy until eof(src).
* Uses mmap if the src is a plain file and at offset 0 */
#define PHP_STREAM_COPY_ALL -1
* Uses mmap if the src is a plain file and at offset 0
* To ensure we don't take up too much memory when reading large files, set the default mmap length
* at this many bytes */
#define PHP_STREAM_COPY_ALL 2000000
BEGIN_EXTERN_C()
PHPAPI size_t _php_stream_copy_to_stream(php_stream *src, php_stream *dest, size_t maxlen STREAMS_DC TSRMLS_DC);
#define php_stream_copy_to_stream(src, dest, maxlen) _php_stream_copy_to_stream((src), (dest), (maxlen) STREAMS_CC TSRMLS_CC)

View File

@ -1162,7 +1162,7 @@ PHPAPI size_t _php_stream_passthru(php_stream * stream STREAMS_DC TSRMLS_DC)
char *p;
size_t mapped;
p = php_stream_mmap_range(stream, php_stream_tell(stream), 0, PHP_STREAM_MAP_MODE_SHARED_READONLY, &mapped);
p = php_stream_mmap_range(stream, php_stream_tell(stream), PHP_STREAM_COPY_ALL, PHP_STREAM_MAP_MODE_SHARED_READONLY, &mapped);
if (p) {
PHPWRITE(p, mapped);