ID: 30153 Updated by: [EMAIL PROTECTED] Reported By: OvdSpek at LIACS dot NL -Status: Open +Status: Bogus Bug Type: Zlib Related Operating System: * PHP Version: 4CVS, 5CVS (20040929) New Comment:
Yes, you're the only one. Report to zlib authors if you don't like Ilia's reply. Previous Comments: ------------------------------------------------------------------------ [2004-09-30 23:54:48] OvdSpek at LIACS dot NL Am I really the only one that does not find this an acceptable solution? The documentation states that this function will return an error and that's what I expect. I do not expect my script to terminate. > The function will return an error if the uncompressed data is more than 32768 times the length of the compressed input data or more than the optional parameter length. ------------------------------------------------------------------------ [2004-09-30 23:39:51] [EMAIL PROTECTED] Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php Decompressing the specified file with non-php tools tells me that the data is corrupt. As far as the error itself, according to the gzip library return statuses the file's compression exceeds that of 1 to 32768 which is defined as upper limit. So this sort of behaviour is expected. PHP cannot terminate nicely since the data size * 32768 still tries to make PHP allocate too much memory, which results in graceful request termination. ------------------------------------------------------------------------ [2004-09-28 23:10:59] [EMAIL PROTECTED] # php -dmemory_limit=100000000000000000000 t.php Allowed memory size of 2147483647 bytes exhausted at /usr/src/web/php/php4/ext/zlib/zlib.c:628 (tried to allocate 1207205888 bytes) ------------------------------------------------------------------------ [2004-09-24 21:25:56] OvdSpek at LIACS dot NL The bug is in 4.3.9 final too. ------------------------------------------------------------------------ [2004-09-19 16:17:24] OvdSpek at LIACS dot NL Description: ------------ The following PHP script appears to cause a full crash/restart of my Apache/2.0.50 (Win32) PHP/4.3.9RC3 Server at localhost Port 80 server on Windows XP. http://213.46.64.114/temp/php_crash.bin http://62.216.18.38/temp/php_crash.bin Reproduce code: --------------- <?php $s = file_get_contents('f:/temp/php_crash.bin'); gzinflate(substr($s, 10)); ?> Expected result: ---------------- No errors. Actual result: -------------- FATAL: erealloc(): Unable to allocate 603602944 bytes [Sun Sep 19 16:11:16 2004] [notice] Parent: child process exited with status 1 -- Restarting. [Sun Sep 19 16:11:16 2004] [notice] Parent: Created child process 3908 [Sun Sep 19 16:11:16 2004] [notice] Child 3908: Child process is running [Sun Sep 19 16:11:16 2004] [notice] Child 3908: Acquired the start mutex. [Sun Sep 19 16:11:16 2004] [notice] Child 3908: Starting 250 worker threads. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=30153&edit=1