#49411 [Asn->Opn]: zlib.inflate stream filter is broken
| From: | jani@php.net | Date: | Mon, 31 Aug 2009 20:41:47 +0000 |
| Subject: | #49411 [Asn->Opn]: zlib.inflate stream filter is broken | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-2699@lists.php.net to get a copy of this message | ||
ID: 49411
Updated by: jani@php.net
Reported By: alex at malexmedia dot net
-Status: Assigned
+Status: Open
-Bug Type: Zlib Related
+Bug Type: Documentation problem
Operating System: *
PHP Version: 5.2.11RC2
Assigned To: jani
New Comment:
Well, I have a fix for the bug I found but it's actually not related to
your problem which is just invalid code. As mentioned on the manual
page
you pointed to:
"Note: Compression filters do not generate headers and trailers used by
command line utilities such as gzip. They only compress and decompress
the payload portions of compressed data streams."
Hence, your example can not work. This is just documentation issue,
reclassifying. The invalid example code needs to be fixed. (to use -15
instead of 15 for window parameter :)
Previous Comments:
------------------------------------------------------------------------
[2009-08-31 20:18:13] alex at malexmedia dot net
Let me know when you've got something ready to test, and I'll do so
asap. :)
------------------------------------------------------------------------
[2009-08-31 20:14:08] jani@php.net
The examples don't work because someone (Sara) changed the window
parameter to default to -15 (to widen the range according to the commit
message) so in the example the deflate uses different params than the
inflate.
There's also a real bug in this same code. GOTO is truly evil..
------------------------------------------------------------------------
[2009-08-31 17:36:35] alex at malexmedia dot net
I just built the latest snapshot on Linux and confirmed: this bug is
still present on both Linux and Windows.
------------------------------------------------------------------------
[2009-08-31 16:55:43] alex at malexmedia dot net
Just tried the binary windows snapshot (5.2.11RC2-dev) and the problem
still appears to be happening.
I'll build the latest snapshot on Linux and try there too...
------------------------------------------------------------------------
[2009-08-29 21:53:56] alex at malexmedia dot net
Description:
------------
The ZLib "inflate" stream filter appears to be broken in PHP 5.2.9 and
5.2.10. When trying to inflate a GZip file, or even a stream previously
compressed with zlib.deflate, zlib.inflate returns no output.
Reproduce code:
---------------
<?php
//zlibtest.php
//Usage:
// $ echo TEST TEST TEST | gzip | php zlibtest.php
$input = fopen("php://stdin", "rb");
stream_filter_append($input, 'zlib.inflate', STREAM_FILTER_READ);
while(!feof($input) && ($buffer = fread($input, 8192)) !== FALSE)
fwrite(STDOUT, $buffer);
fclose($input);
//Inexplicably, this will produce no output on STDOUT.
//Even the example at http://us3.php.net/filters.compression behaves
incorrectly.
?>
Expected result:
----------------
I expect to see "TEST TEST TEST" on the command line.
Actual result:
--------------
The zlib.inflate filter is clearly not producing decompressed results
on fread() operations. By my reckoning, this is a problem.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=49411&edit=1