readfile() mangles files larger than 2G

Bug #73069 readfile() mangles files larger than 2G
Submitted: 2016-09-13 06:48 UTC Modified: 2016-10-18 11:51 UTC
From: ellinger at six dot de Assigned: laruence (profile)
Status: Closed Package: Streams related
PHP Version: 5.6.26RC1 OS:
Private report: No CVE-ID: None

 [2016-09-13 06:48 UTC] ellinger at six dot de

Description:
------------
See bug #72505 posted for Version 7.0. This seems to be still an issue in the 5.6 branch. Readfile simply starts all over again at the 2GB border, i. e. repeating Bytes 0 + x, resulting in corrupted output.

Requesting a cherry pick. :-)


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports

 [2016-09-13 13:52 UTC] cmb@php.net

-Assigned To: +Assigned To: laruence

 [2016-09-13 13:52 UTC] cmb@php.net

@laruence Has there be a particular reason that bug #72505 had
been fixed for PHP 7.0+ only?

 [2016-09-15 00:30 UTC] yohgaki@php.net

We support reading large file by chunk, but
2GB or more string support is only in PHP 7.0+, isn't it?

 [2016-09-15 00:44 UTC] yohgaki@php.net

Disregard previous comment. readfile() only read file and output directly. IIRC, it uses mmap() with fixed buffer size. It could be extended probably.

 [2016-10-18 11:51 UTC] kaplan@php.net

-Status: Assigned +Status: Closed

 [2016-10-18 11:51 UTC] kaplan@php.net

Done at ac07008bb7eeee46c9e45c976fc3dc264f0eadff (part of 5.6.27)