PHP :: Bug #66736 :: fpassthru broken

 [2014-02-18 19:49 UTC] evert at rooftopsolutions dot nl

Description:
------------
fpassthru is broken for files > 2GB on 64bit systems.

Tested with OS X, but also getting reports from users of other operating systems.

Likely there's an integer overflow issue.

Reference: http://evertpot.com/fpassthru-broken/

Test script:
---------------
# 5GB file

dd if=/dev/zero of=5gb bs=1024 count=5242880
php -r "fpassthru(fopen('5gb','r'));" > output_5gb

# 3GB file

dd if=/dev/zero of=3gb bs=1024 count=3145728
php -r "fpassthru(fopen('3gb','r'));" > output_3gb

# Comparing outputs

ls -lh


Expected result:
----------------
-rw-r--r--   1 evert  staff   3.0G 18 Feb 14:43 3gb
-rw-r--r--   1 evert  staff   5.0G 18 Feb 14:41 5gb
-rw-r--r--   1 evert  staff   3.0G 18 Feb 14:45 output_3gb
-rw-r--r--   1 evert  staff   5.0G 18 Feb 14:44 output_5gb

Actual result:
--------------
-rw-r--r--   1 evert  staff   3.0G 18 Feb 14:43 3gb
-rw-r--r--   1 evert  staff   5.0G 18 Feb 14:41 5gb
-rw-r--r--   1 evert  staff     0B 18 Feb 14:45 output_3gb
-rw-r--r--   1 evert  staff   1.0G 18 Feb 14:44 output_5gb

 [2014-04-03 08:42 UTC] mike@php.net

-Status: Open +Status: Closed