ID: 29100
Updated by: [EMAIL PROTECTED]
Reported By: pickleman78 at sbcglobal dot net
-Status: Open
+Status: Bogus
Bug Type: Reproducible crash
Operating System: WIndows XP
PHP Version: 4.3.6
New Comment:
emalloc() deosn't *actually* try to allocate the memory. It checks
your requested amount against the php.ini setting and if it's too high,
throws a fatal error.
It has to be a fatal error because your script has outrun its
resources, and it's impossible to predict whether or not it can safely
continue operations in that condition.
Previous Comments:
------------------------------------------------------------------------
[2004-07-11 22:40:59] pickleman78 at sbcglobal dot net
Description:
------------
I am getting a crash from PHP when I mistakenly attempt to read
1,761,607,681 bytes from an incoming socket. Now I would reasonably
assume that since this is far above the memory limit set in my PHP.ini
file
memory_limit = 8M
I would expect it to stop before even attempting to allocate such a
rediculous ammount of memory for the script. In this case it fails with
a
FATAL: emalloc() unable to allocate 1761607681 bytes. Should this be
what it does? I would expect it to issue an ERROR as opposed to
crashing.
Reproduce code:
---------------
<?php
$fp=fsockopen("http://php.net");
$data=fread($fp,1761607681);
?>
Expected result:
----------------
It would be expected to receive an error as opposed to PHP trying to
allocate this memory
Actual result:
--------------
Stated above, causes
FATAL: emalloc() could not......
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=29100&edit=1