#49411 [Asn->Opn]: zlib.inflate stream filter is broken

From: 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

« previous php.doc.bugs (#2699) next »