[PHP-DEV] Bug #12091 Updated: zlib uncompress buffer error/ inflate failed From: alberty <email protected>
Date: 07/13/01

ID: 12091
User updated by: alberty <email protected>
Reported By: alberty <email protected>
Status: Closed
Bug Type: Zlib Related
Operating System: i686-pc-linux-gnu
PHP Version: 4.0CVS-2001-07-12
New Comment:

Hi Thies,

thank you for your changes in zlib.c but you have not
really fix the problem.
If i increase the string repeating from 5000 to 35000,
i have the same problem again, but
i don't no why, sometimes php works correct...

<---snip--->
<tt>
<?php
error_reporting(63);
mt_srand ((double) microtime() * 1000000);

for ($original="",$i=0;$i<35000;$i++){
        //$out.=chr(mt_rand()); //
        $original.="lala "; // problem
}

$packed=gzdeflate($original); // gzcompress
$unpacked=gzinflate($packed); // gzuncompress

echo "Length original:".strlen($original)."<br>";
echo "Length packed:".strlen($packed)."<br>";
echo "Length unpacked:".strlen($unpacked)."<br>";

if (strcmp($original,$unpacked)==0) echo "Strings are equal";
else echo "<b>Strings <u>not</u> equal</b>";
?>
</tt>
<---snap--->

Regards,

-- 
Steve

Previous Comments: ------------------------------------------------------------------------

[2001-07-13 11:15:07] thies <email protected>

fixed in CVS

you can make it work in 4.0.6 by changing maxfactor from 8 to lets say 16 in zlib.c around line 912

------------------------------------------------------------------------

[2001-07-12 05:38:24] alberty <email protected>

Hi,

the follow code produces a deflated string which php can not inflate.

php results: "Warning: gzinflate: buffer error in /web/htdocs/thisfile.php"

---- <tt> <?php error_reporting(63); mt_srand ((double) microtime() * 1000000);

for ($original="",$i=0;$i<5000;$i++){ //$original.=chr(mt_rand()); // $original.="lala "; // problem }

$packed=gzdeflate($original); // gzcompress $unpacked=gzinflate($packed); // gzuncompress

echo "Length original:".strlen($original)."<br>"; echo "Length packed:".strlen($packed)."<br>"; echo "Length unpacked:".strlen($unpacked)."<br>";

if (strcmp($original,$unpacked)==0) echo "Strings are equal"; else echo "<b>Strings <u>not</u> equal</b>"; ?> </tt> ----

Regards,

-- Steve

------------------------------------------------------------------------

Edit this bug report at http://bugs.php.net/?id=12091&edit=1

-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: php-dev-unsubscribe <email protected> For additional commands, e-mail: php-dev-help <email protected> To contact the list administrators, e-mail: php-list-admin <email protected>