Package home | Report new bug | New search | Development Roadmap Status: Open | Feedback | All | Closed Since Version 1.4.4

Bug #10790 false error : _decodeGzip(): data CRC check failed
Submitted: 2007-04-21 07:29 UTC
From: remicollet Assigned: avb
Status: Closed Package: HTTP_Request (version 1.4.0)
PHP Version: 5.2.1 OS: Fedora Core 6 (x86_64)
Roadmaps: 1.4.1    
Subscription  


Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know! Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
MUST BE VALID
Solve the problem : 38 + 31 = ?

 
 [2007-04-21 07:29 UTC] remicollet (Remi Collet)
Description: ------------ In some case this error is return (while all is ok). In the example below, CRC is 2180175905 But unpack return -2114791391 Test : # php -r 'print_r(unpack("V",pack("V",2180175905)));' Array ( [1] => -2114791391 ) See http://bugs.php.net/bug.php?id=32700 Test script: --------------- require "HTTP/Request.php"; $request = &new HTTP_Request("http://xoap.weather.com/search/search?where=".urlencode("Reims, France")); $status = $request->sendRequest(); if (PEAR::isError($status)) echo "ERROR: " . $status->getMessage() . "\n"; else echo "OK.\n"; Expected result: ---------------- OK. Actual result: -------------- ERROR: _decodeGzip(): data CRC check failed

Comments

 [2007-04-21 09:00 UTC] remicollet (Remi Collet)
This bug is 64 bits only. On 32 bits, crc32 return a < 0 value, so it's ok. So my patch is not working. Must investigate for another solution.
 [2007-04-21 09:27 UTC] remicollet (Remi Collet)
A working solution (test on i386 and x86_64) : Request.php, line 1382 if ($dataCrc<0 && PHP_INT_SIZE>4) $dataCrc += 4294967296; Hope that helps.
 [2007-04-27 18:57 UTC] remicollet (Remi Collet)
Also read : http://bugs.php.net/bug.php?id=39062 (crc32 32/64 bits issue)
 [2007-05-02 20:11 UTC] avb (Alexey Borzov)
Per report of Bill Moran (wmoran at collaborativefusion dot com) on pear-dev the following fix works: } elseif ((0xffffffff & $dataCrc) != (0xffffffff & crc32($unpacked))) { while the one proposed in http://bugs.php.net/bug.php?id=39062 doesn't.
 [2007-05-18 10:42 UTC] avb (Alexey Borzov)
This bug has been fixed in CVS. If this was a documentation problem, the fix will appear on pear.php.net by the end of next Sunday (CET). If this was a problem with the pear.php.net website, the change should be live shortly. Otherwise, the fix will appear in the package's next release. Thank you for the report and for helping us make PEAR better.