php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #19749 shouldn't mmap() files larger than memory_limit in _php_stream_passthru
Submitted: 2002-10-04 03:21 UTC Modified: 2004-04-21 14:04 UTC
From: rasmus@php.net Assigned: wez
Status: Closed Package: Performance problem
PHP Version: 4CVS-2002-10-04 OS: All
Private report: No CVE-ID:
 [2002-10-04 03:21 UTC] rasmus@php.net
We should check the memory limit before mmap()'ing a huge file in _php_stream_passthru()

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-10-05 06:34 UTC] wez@php.net
How do we tell when a file is too big?
We can check if the file size exceeds the memory limit, but
surely we should be checking for some size smaller than
that so that we don't exceed the limit (by too much).

 [2002-10-05 10:17 UTC] rasmus@php.net
Yup, we should do it in chunks of some fraction of memory-limit, I guess.  quarters, fiths, tenths?  It should be a decently big chunk size so there will be a good chance that many files fit into a single chunk for optimal speed.
 [2003-02-27 11:05 UTC] iliaa@php.net
Is this really a problem, passthru will immidiately output the data to screen thus making hightened memory usage a very temporary thing. If the user tries to use buffering to 'hold' the data then the memory limit will kick-in anyway. The only way I could see a user trying to 'exploit' this is by writing a file that would load a large file to memory and then manually doctoring the request to read the data 1 byte at a time. But this is hardly different from allocating just shy of the memory limit and doing the same thing with multiple scripts.
This is really no different then making SQL query create a huge temporary table consuming *any* amount of memory.
 [2003-03-09 18:42 UTC] sniper@php.net
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.


 [2004-04-21 14:04 UTC] wez@php.net
Fixed in PHP 5.
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Wed Apr 16 13:02:46 2014 UTC