new bug in 5.1.0b3 with length param in fread() with local files

From: Date: Fri, 22 Jul 2005 04:08:02 +0000
Subject: new bug in 5.1.0b3 with length param in fread() with local files
Groups: php.internals 
Request: Send a blank email to internals+get-17371@lists.php.net to get a copy of this message
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

« previous php.internals (#17371) next »