Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:17371 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 94119 invoked by uid 1010); 22 Jul 2005 04:08:08 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 94104 invoked from network); 22 Jul 2005 04:08:08 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 22 Jul 2005 04:08:08 -0000 X-Host-Fingerprint: 4.228.84.38 dialup-4.228.84.38.Dial1.Denver1.Level3.net Received: from ([4.228.84.38:5488] helo=localhost.localdomain) by pb1.pair.com (ecelerity 2.0 beta r(6227M)) with SMTP id 46/D7-33635-72170E24 for ; Fri, 22 Jul 2005 00:08:08 -0400 Message-ID: <46.D7.33635.72170E24@pb1.pair.com> To: internals@lists.php.net Date: Thu, 21 Jul 2005 22:08:02 -0600 User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) X-Accept-Language: en-us, en MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Posted-By: 4.228.84.38 Subject: new bug in 5.1.0b3 with length param in fread() with local files From: cellog@php.net (Greg Beaver) 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