If you've spotted a behaviour change, open a new bug with a short self-contained reproducing script. I suspect some kind of engine bug here, because what you've described doesn't make sense :)
That warning about the length comes from this code in the fread function: len = Z_LVAL_PP(arg2); if (len <= 0) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Length parameter must be greater than 0"); RETURN_FALSE; } So either you are passing in something that evaluates as 0 (or less), or something is corrupting memory and breaking the length value by the time it reaches fread(). I'd recommend running your script under valgrind (--disable-memory-manager when you configure PHP) and see if it reports anything bad. --Wez. On 7/22/05, Greg Beaver <[EMAIL PROTECTED]> wrote: > Hi, > > I have noticed that fread()'s behavior has changed between PHP 5.0.4 and > PHP 5.1.0b3. Basically, http://pear.chiaraquartet.net/go-pear.phar > works in PHP 5.0.4 and fails in 5.1.0b3 because of this change. The > line in question of the .phar from PHP_Archive is: > > fread($this->_file, $this->internalFileLength + > $this->footerLength); > > Basically, a .phar is a .tar. For files inside the .phar larger than > 16000 bytes, the fread above fails with the incorrect error message: > > PHP Warning: fread(): Length parameter must be greater than 0 in > c:\php5\pear\PHP\Archive.php on line 193 > > Note that the failure is OS-independent. > > However, the actual length parameter is 21,155, which is not less than > zero, unless you consider it to be a negative number in binary. After > the fread in PHP 5.0.4, ftell() reveals that the pointer has advanced to > 22016, whereas in 5.1.0b3, it has only advanced to 16384. > > According to the notes in http://bugs.php.net/bug.php?id=30936 this > should work with a local file, so should I re-open 30936, or is this a > new bug? > > Greg > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php