From 927f59507721a6467de0ed57be0ed42d5b25a4a8 Mon Sep 17 00:00:00 2001 From: Nuno Lopes Date: Wed, 28 Jan 2009 23:20:26 +0000 Subject: [PATCH] MFB: turn the offset parameter of mmap() back to 0 --- Zend/zend_stream.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Zend/zend_stream.c b/Zend/zend_stream.c index 0c76ba70b4..30bcda4765 100644 --- a/Zend/zend_stream.c +++ b/Zend/zend_stream.c @@ -219,11 +219,18 @@ ZEND_API int zend_stream_fixup(zend_file_handle *file_handle, char **buf, size_t #if HAVE_MMAP if (file_handle->handle.fp) { /* *buf[size] is zeroed automatically by the kernel */ - *buf = mmap(0, size + ZEND_MMAP_AHEAD, PROT_READ, MAP_PRIVATE, fileno(file_handle->handle.fp), ftell(file_handle->handle.fp)); + *buf = mmap(0, size + ZEND_MMAP_AHEAD, PROT_READ, MAP_PRIVATE, fileno(file_handle->handle.fp), 0); if (*buf != MAP_FAILED) { - file_handle->handle.stream.mmap.len = size; + long offset = ftell(file_handle->handle.fp); file_handle->handle.stream.mmap.map = *buf; + + if (offset != -1) { + *buf += offset; + size -= offset; + } file_handle->handle.stream.mmap.buf = *buf; + file_handle->handle.stream.mmap.len = size; + goto return_mapped; } } -- 2.40.0